1、卸载系统自带的mariadb-libs
- rpm -qa|grep mariadb
// 查询是否存在
rpm -qa|grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
// 删除系统自带的mariadb-libs
rpm -e -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
2、下载安装包
// 1、
mysql-community-libs-5.7.25-1.el7.x86_64.rpm
https://dev.mysql.com/downloads/file/?id=482674
// 2、
mysql-community-common-5.7.25-1.el7.x86_64.rpm
https://dev.mysql.com/downloads/file/?id=482678
// 3、
mysql-community-server-5.7.25-1.el7.x86_64.rpm
https://dev.mysql.com/downloads/file/?id=482679
// 4、
mysql-community-client-5.7.25-1.el7.x86_64.rpm
https://dev.mysql.com/downloads/file/?id=482677
3、进行rpm安装
rpm -Uvh *.rpm --nodeps --force
- 查看安装情况:
[root@guchen mysql5.7]# rpm -qa|grep mysql
mysql-community-client-5.7.25-1.el7.x86_64
mysql-community-common-5.7.25-1.el7.x86_64
mysql-community-libs-5.7.25-1.el7.x86_64
mysql-community-server-5.7.25-1.el7.x86_64
# 安装成功
4、数据库初始化
mysqld --initialize --user=mysql
如果出现错误:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
执行
yum install -y libaio
数据库初始化有时候反应会比较慢,请耐心等待。初始化成功后会生成一个随机密码
使用以下命令查看生成的密码:
grep 'temporary password' /var/log/mysqld.log
5、启动、停止、开机自启动数据库服务
# 启动
systemctl start mysqld.service
# 停止
systemctl stop mysqld.service
# 重启
systemctl restart mysqld.service
# 开机自启
systemctl enable mysqld
6、数据库设置
- 登录
登陆mysql数据库,登陆时,复制以上生成的密码即可
mysql -u root -p
- 设置新密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
- 之后再想修改密码时:
mysql> use mysql;
Database changed
mysql> set password for root@%' = password('新密码');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
如果是localhost则修改的是只能供服务器本地使用的账户,而'%'则是已设置好可远程连接、不限制访问ip的账户
- 设置远程连接
mysql> grant all privileges on *.* to root@'%' identified by "password";
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
- 设置防火墙开启3306端口
##Centos7 防火墙打开端口号
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#下面3行是参数说明
#–zone #作用域
#–add-port=80/tcp #添加端口,格式为:端口/通讯协议
#–permanent #永久生效,没有此参数重启后失效
- 防火墙设置
#重启防火墙后看看是否生效
firewall-cmd --reload #重启firewall
firewall-cmd --zone=public --list-ports #查看已经开放的端口
#如果想永久停止防火墙,执行下面操作
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
#查看防火墙状态
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
7、服务启动失败
- 结果报错
Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.
- 解决方法:
vim /etc/sysconfig/selinux
将'SELINUX =enforcing'更改为'SELINUX =disabled'
然后reboot重启linux
如果selinux文件中本来就是'SELINUX =disabled',请使用如下命令,查看错误日志寻找其他解决方法
vim /var/log/mysqld.log
2019-03-21T14:58:32.879474Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
- 解决方法:
vim /etc/my.cnf
在 vi /etc/my.cnf 文件中加上 : explicit_defaults_for_timestamp=true 。保存后再次启动就可以了
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
explicit_defaults_for_timestamp=true