参考资料:MySQL 官方 – A Quick Guide to Using the MySQL Yum Repository
在这里是下载到了 /opt
目录中,使用的是 root
用户,请根据实际使用情况更改。
cd /opt
sudo wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
# 推荐使用最新的源:2023-07-29 更新
sudo wget https://dev.mysql.com/get/mysql80-community-release-el8-7.noarch.rpm
sudo rpm -ivh mysql80-community-release-el8-1.noarch.rpm
# 推荐使用最新的源:2023-07-29 更新
sudo rpm -ivh mysql80-community-release-el8-7.noarch.rpm
sudo yum install mysql-community-server
【注】如果是服务器版本的 CentOS 安装 MySQL 时是没有输入密码的,桌面版的可以输入密码。
如果安装提示找不到 mysql-community-server
,请参考文章:CentOS 8 服务器安装 MySQL 报错:no match mysql-community-server
启动服务:
sudo service mysqld start
# 或 (CentOS 7 或 CentOS 8 推荐下面的命令)
sudo systemctl start mysqld.service
查看服务器的状态:
sudo service mysqld status
# 或 (CentOS 7 或 CentOS 8 推荐下面的命令)
sudo systemctl status mysqld.service
安装完成后 root
的密码为空密码
,可以从安装的日志中查看。
【注】 2022-11-24 更新:8.0 目前也已经有了,详见 5.2请注意与上一版本 5.7 的区别,5.7 会在日志中生成 root 用户的随机密码,但是 8 版本目前不会生成,以后应该会有,毕竟官网目前说的是(截止到 MySQL 5.7 为止)
。
less /var/log/mysql/mysqld.log
如果当前系统登陆的用户为 root
可以直接使用以下命令快速登陆,等同于 mysql -uroot --skip-password
,因为 root 没有密码,所以不需要使用 sudo mysql -uroot -p
命令,如果使用该命令,则当需要输入密码的时候直接回车即可。
#输入 mysql 直接回车即可
mysql
【注】mysql_secure_installation
指令只对 MySQL 5.6
有效,从 MySQL 5.7
开始就已经不能使用。
【注】现在 8.0
版本也会自动生成随机密码(需要先启动 MySQL,不启动是不会生成的),测试版本为: 8.0.31
,暂未深究从哪个小版本开始支持的。
# 启动 MySQL
systemctl start mysqld.service
# 可以增加开机启动
systemctl enable mysqld.service
less /var/log/mysqld.log
#打开如下所示:
[MY-010454] [Server] A temporary password is generated for root@localhost: y,zAao(r
使用 mysql
登陆,然后修改root
的密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#输入 quit; 退出 mysql
mysql> quit;
这时再直接输入 mysql
就不允许登陆了,因为我们已经为 root
设置了密码,需要通过密码才能进行登陆。
mysql -uroot -p
Enter password: # 输入设置的密码并回车
MySQL 8.0 之后操作会有些复杂。
mysql -uroot -p
Enter password: # 输入设置的密码并回车, 密码为 mysqld.log 中的临时密码
【注】: 必须要先重置 root@localhost 的密码,就是不要使用临时密码;否则会报错如下:
mysql> use mysql
No connection. Trying to reconnect...
Connection id: 13
Current database: *** NONE ***
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
而且重置密码的时候必须满足 MySQL
的密码校验规则要求,尽可能设置复杂的密码,等后续可以更改密码校验规则,再使用简单的密码校验。
# 密码 大小写 + 数字 + 一个符号,且大于 8 位即可。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '一个很复杂的密码';
#输入 quit; 退出 mysql
mysql> quit;
恭喜你!这样 MySQL 就安装好了!