操作系统:阿里云CentOS7
MySQL版本:V8.0.19
1、安装前卸载mariadb
# rpm -qa | grep mariadb
# rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
2、# cd /usr/local/bin/
3、下载mysql redHat版本
# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar
4、解包
# tar -xvf mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar
5、解压后一共有8个安装包,依次执行rpm -ivh [安装包名称].rpm --nodeps --force
命令安装。以下是我执行命令的顺序(安装了7个,测试包没有安装)
1、# rpm -ivh mysql-community-common-8.0.19-1.el7.x86_64.rpm --nodeps --force
2、# rpm -ivh mysql-community-libs-8.0.19-1.el7.x86_64.rpm --nodeps --force
3、# rpm -ivh mysql-community-server-8.0.19-1.el7.x86_64.rpm --nodeps --force
4、# rpm -ivh mysql-community-client-8.0.19-1.el7.x86_64.rpm --nodeps --force
5、# rpm -ivh mysql-community-libs-compat-8.0.19-1.el7.x86_64.rpm --nodeps --force
6、# rpm -ivh mysql-community-embedded-compat-8.0.19-1.el7.x86_64.rpm --nodeps --force
7、# rpm -ivh mysql-community-devel-8.0.19-1.el7.x86_64.rpm --nodeps --force
使用# rpm -qa | grep mysql
查看已安装的mysql包
6、mysqld初始化
# mysqld --initialize;
如果报错error while loading shared libraries: libaio.so.1: cannot open shared object file
则需要先执行
# yum install -y libaio
安装libaio异步IO组件,然后初始化mysqld
7、启动mysqld
# systemctl start mysqld.service
或者# service mysqld restart
如果启动报错“Job for mysqld.service failed because the control process exited with error code”
可以尝试删掉初始化信息# rm -rf /var/lib/mysql
然后启动(此处我没有验证,是不是可以跳过第六步直接启动)
8、修改root初始密码
1)# cat /var/log/mysqld.log | grep password
命令查看数据库root用户的初始化密码
2)# mysql -uroot -p
root用户登陆,密码使用初始化密码
3)mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
修改root密码为123456
9、开启mysql远程访问
1)阿里云控制台添加安全组规则,开放3306端口
2)查看firewall启用情况和端口开放情况,用到的命令如下
# systemctl status firewalld ##查看防火墙启用情况
# firewall-cmd --list-port ##查看防火墙开放端口情况
# firewall-cmd --zone=public --add-port=3306/tcp --permanent ##开放端口3306
# firewall-cmd --reload ## 端口开放reload生效
# netstat -nltp # 端口使用情况
3)创建mysql远程访问用户
# mysql -u root -p ##登陆mysql
mysql> use mysql; ##打开mysql系统库
mysql> select host,user from user where user='root'; ## 查看root用户,默认只有host为localhost的root用户
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '123456'; ## 创建host为%号的root远程用户
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; ##将远程访问用户的验证方式改为: msyql_native_password
mysql> grant all privileges on *.* to 'root'@'%' ; ##授权
mysql> flush privileges; ##更改生效
参考:
https://baijiahao.baidu.com/s?id=1649440975682362894&wfr=spider&for=pc
https://blog.csdn.net/eagle89/article/details/78411184
https://blog.csdn.net/aiyowei1106/article/details/88703746
https://www.cnblogs.com/Ai-Hen-Jiao-zhi/p/updategrole.html
https://www.jianshu.com/p/c73eba1472ff