一、安装包下载
下载地址:https://downloads.mysql.com/archives/community/
二、卸载冲突包、安装依赖包
1、查看系统是否安装mariadb(linux系统默认有这个)
rpm -qa | grep mariadb;
2、如果查询出来有有安装(类似如下图信息),则将其卸载
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64;
3、安装MySQL依赖包
yum install libaio;
三、上传安装包
将下载的压缩包上传到服务器指定目录
这里使用FileZilla上传
四、创建mysql用户、创建mysql安装目录并授权给MySQL。
1、创建mysql用户
useradd mysql;
2、给mysql设置密码
passwd mysql;
3、创建mysql安装目录
mkdir /usr/local/mysql;
4、将mysql目录的权限授给mysql用户
chown -R mysql:mysql /usr/local/mysql;
5、创建mysql数据存放目录
mkdir /usr/local/mysql/mysqldb;
6、设置安装目录和存放目录权限
chmod -R 777 /usr/local/mysql;
chmod -R 777 /usr/local/mysql/mysqldb;
五、解压安装包并将解压内容移到安装目录
1、进入安装包目录
cd /root/tmp;
2、解压安装包
tar -zxvf mysql-8.0.22-el7-x86_64.tar.gz;
3、将解压内内容移动到安装目录
mv mysql-8.0.22-el7-x86_64/* /usr/local/mysql;
4、删除mysql-8.0.22-el7-x86_64目录
rm -rf mysql-8.0.22-el7-x86_64;
六、创建mysql配置文件
1、创建my.cnf文件
vim /etc/my.cnf;
配置文件内容如下(配置文件中忽略大小写的配置如果有需要必须在初始化前配置<官方文档中有提示,这个配置只能初始化时设置,后期修改配置文件无效>)
[mysqld]
# 跳过权限表校验
# skip-grant-tables
skip-name-resolve
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysqldb
# pid-file=/usr/local/mysql/mysqldb/mysql.pid
log-error=/usr/local/mysql/mysqldb/mysql.log
# 允许最大连接数
max_connections=2000
# 服务端使用的字符集默认为8比特编码的latin1字符集
character_set_server=utf8
init_connect='SET NAMES utf8'
collation_server=utf8_bin
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 忽略大小写
lower_case_table_names=1
# 接受的数据包大小
max_allowed_packet=2000M
tmp_table_size=500M
max_heap_table_size=500M
# 拼接字符串最大字节数
group_concat_max_len=4294967295
# 开启二进制日志
server-id=11
# 开启二进制日志,日志文件名称是 mysql-bin
log-bin=mysql-bin
# 日志保留天数
# expire-logs-days=7
binlog_expire_logs_seconds=7
# 导入导出路径限制
secure_file_priv=''
log-bin-trust-function-creators=1
# default-authentication-plugin = mysql_native_pssword
# 登录超时处理
wait_timeout=10000
interactive_timeout=10000
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
# 创建新表时将使用的默认数据集
default-character-set=utf8
七、初始化数据库
1、进入MySQL安装目录的bin目录下
cd /usr/local/mysql/bin;
2、初始化数据库并记住随机密码(随机密码为最后一行root@localhost:后面的字符、这里我没有弹出随机密码)
./mysqld --initialize --console;
3、如果初始化后没弹出随机密码可进入my.cnf中设置跳过权限表校验
八、启动MYSQL服务并初始化设置
1、进入support-files目录
cd /usr/local/mysql/support-files;
2、启动服务
./mysql.server start;
错误提示:
①、启动MySQL服务时报 my_print_defaults:。
可以去my.cnf配置文件中检查安装目录和数据目录配置是否正确(不正确修改正确)
②、报without updating PID file错误
问题是因为解压mysql的tar包文件,权限不够。
重新给安装目录和数据目录授权一次即可。
chmod -R 777 /usr/local/mysql;
chmod -R 777 /usr/local//mysql/mysqldb;
3、将MySQL加入系统进程
cp mysql.server /etc/init.d/mysqld;
4、重启服务
service mysqld restart;
5、创建一个软连接到 /usr/bin
ln -s /usr/local/mysql/bin/mysql /usr/bin;
6、本地登录mysql修改root密码(初始化化密码没拿到的在my.cnf中设置跳过权限验证,输入密码时直接回车可进入数据库)
mysql -uroot -p;
7、修改root账号密码
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
提示:
这里提示异常的话,可能是设置跳过权限表校验引起的,可以先刷新权限再运行一次修改密码
mysql>flush privileges;
8、创建用户
mysql>create user 'admin123'@'%' identified by "asd1ad3";
8、赋予用户权限
mysql>grant all privileges on *.* to 'admin123'@'%';
9、设置允许远程登录(建议root账号不设置远程登录、创建其他账号设置远程登录)
mysql>use mysql;
mysql>update user set user.Host='%' where user.User='admin123';
mysql>flush privileges;
10、退出mysql
mysql>quit;
11、进入my.cnf配置文件将权限验证开启(注释掉)
vi /etc/my.cnf;
12、重启MySQL服务
service mysqld restart;
九、开放数据库端口3306
1、开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent;
2、重启防火墙以使配置生效
systemctl restart firewalld;
3、检查3306端口是否开放
firewall-cmd --query-port=3306/tcp;
提示:如果是租的阿里云服务器、需要在阿里云服务器管理控制页面添加防火墙开放端口,否则远程登录也无效。
MYSQL安装完成。