Skip to content

CentOS 安装 MySQL

https://dev.mysql.com/downloads/mysql/

  • OS : Red Hat Enterprise Linux 7 / Oracle Linux
  • Version : Red Hat Enterprise Linux 7 / Oracle Linux (x86, 64-bit)
  • RPM Bundle - Download
  • No thanks, just start my download.

移动到 /usr/local/mysql/ 目录下。此步骤需要在 /usr/local/ 下新建 mysql 文件夹。

Terminal window
sudo mv mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar /usr/local/mysql/

2.1. 通过命令查看 mariadb 的安装包

Section titled “2.1. 通过命令查看 mariadb 的安装包”
Terminal window
rpm -qa | grep mariadb
Terminal window
rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

通过命令查看 mariadb 是否卸载

Terminal window
rpm -qa | grep mariadb
Terminal window
pwd
/usr/local/mysql
Terminal window
sudo tar -xvf mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar
Terminal window
sudo rpm -ivh mysql-community-common-8.0.27-1.el7.x86_64.rpm --nodeps --force
Terminal window
sudo rpm -ivh mysql-community-libs-8.0.27-1.el7.x86_64.rpm --nodeps --force
Terminal window
sudo rpm -ivh mysql-community-client-8.0.27-1.el7.x86_64.rpm --nodeps --force

该步骤花费时间较长

Terminal window
sudo rpm -ivh mysql-community-server-8.0.27-1.el7.x86_64.rpm --nodeps --force
Terminal window
rpm -qa | grep mysql
Terminal window
sudo mysqld --initialize;

如果遇到报错 mysqld: error while loading shared libraries: libnuma.so.1,执行下面的命令

Terminal window
yum -y install numactl
Terminal window
sudo chown mysql:mysql /var/lib/mysql -R;
sudo systemctl start mysqld.service;
sudo systemctl enable mysqld;
Terminal window
sudo cat /var/log/mysqld.log | grep password
Terminal window
2021-11-21T14:21:26.120237Z 6 [Note] [MY-010454] [Server]
A temporary password is generated for root@localhost: 3l-/wkz#>iHl
Terminal window
mysql -uroot -p

密码即为刚刚生成的字符串。

exit;

在文件尾部添加以下内容

skip-grant-tables
Terminal window
sudo service mysqld restart
Terminal window
mysql -uroot -p

此时登录密码为空。

use mysql;
UPDATE user SET authentication_string = '' WHERE User = 'root';
  • 退出数据库
  • 删除 /etc/my.cnf 的 skip-grant-tables
  • 重启 mysql 服务

无密码登录 mysql,并通过下面的脚本命令修改密码。

ALTER user 'root'@'localhost' IDENTIFIED BY 'a123456'; -- BY 后面为密码

可以使用刚刚的密码登录

use mysql;

7.3. 更新域属性,'%' 表示允许外部访问:

Section titled “7.3. 更新域属性,'%' 表示允许外部访问:”
update user set host='%' where user ='root';
Terminal window
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

TODO