我使用的CentOS 版本号是7.6.1810.
安装mysql
步骤一:卸载CentOS自带的MariaDB
rpm -pa|grep mariadb
用这个命令查找出要删除的MariaDB文件
结果显示如下。
mariadb-libs-5.5.56-2.el7.x86_64
删除这个程序
rpm -e mariadb-libs-5.5.56-2.el7.x86_64
报错
依赖检测失败:
libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
使用强制删除
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
步骤二: 安装mysql
- 到mysql 官网找社区版,下载需要安装的mysql包。
-
因为CentOS是基于RedHat的,mysql没有CentOS包,就找到Red Hat的包
mysql官网.png - 也就是底下第一个,490M
- 下载完成后解压到目录中。
依照以下顺序安装
(1) mysql-community-common-8.0.11-1.el7.x86_64.rpm
(2) mysql-community-libs-8.0.11-1.el7.x86_64.rpm
(3) mysql-community-client-8.0.11-1.el7.x86_64.rpm
(4) mysql-community-server-8.0.11-1.el7.x86_64.rpm
你也可以按照这个列表逐个下载,本文为了方便,选择了全集包。
启动Mysql
service mysqld start
获取初始管理员密码
grep 'temporary password' /var/log/mysql/mysqld.log
此时拿到初始管理员密码,登录mysql
修改初始管理员密码
alter user 'root'@'localhost'IDENTIFIED BY 'MyNewPass123!';
mysql8.0以上密码策略限制必须要大小写加数字特殊符号
添加账户
为了安全起见,强烈建议在远程连接的时候使用非root账户。创建test用户,密码为“MyNewPass1!”,为其分配所有权限
CREATE USER 'test'@'localhost' IDENTIFIED BY 'MyNewPass1!';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' WITH GRANT OPTION;
CREATE USER 'test'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;
flush privileges;
对于新创建的账户,MySQL 8默认它的密码插件为caching_sha2_password,而现有的客户端工具大都只支持mysql_native_password插件,如果你用现有版本的客户端工具链接会报错“authentication plugin caching_sha2_password cannot be loaded”。
解决方法是改变用户的密码插件:
ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'MyNewPass1!';
flush privileges;
然后需要修改配置文件:
vi /etc/my.cnf
配置文件中,将这一行的#符去掉.png
重新启动:
systemctl restart mysqld
查看用户和权限是否创建成功
select user, host, plugin, authentication_string from mysql.user;
SHOW GRANTS FOR 'test'@'%';
设置开机启动
systemctl enable mysqld
开放端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
``