怎样快速安装MySQL

2020年10月10日 | 分类: 【技术】

【介绍】

CentOS 7 / CentOS 8 安装 MySQL 8.0 并配置远程登录

参考:https://www.cnblogs.com/kasnti/p/11929030.html

下载 YUM 仓库文件:

打开网址: https://dev.mysql.com/downloads/repo/yum/

【安装(CentOS 7)】

wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm
sudo yum -y install mysql-community-server

启动MySQL服务并使它在启动时自动启动:

sudo systemctl enable --now mysqld

检查MySQL服务器是否正在运行:

sudo systemctl status mysqld

查看初始密码:

cat /var/log/mysqld.log | grep password

输出:

2020-10-12T12:07:34.797861Z 6 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: lyfw7KBeV*5N

运行mysql_secure_installation脚本,修改MySQL根密码并执行一些与安全性相关的操作:

sudo mysql_secure_installation

【安装(CentOS 8)】

sudo dnf install @mysql

启动MySQL服务并使它在启动时自动启动:

sudo systemctl enable --now mysqld

检查MySQL服务器是否正在运行:

sudo systemctl status mysqld

运行mysql_secure_installation脚本,设置MySQL根密码并执行一些与安全性相关的操作:

sudo mysql_secure_installation

登录 MySQL :

mysql -u root -p

MySQL8.0默认已经是utf8mb4字符集,所以字符集不再修改。

【命令】

命令:

service mysql start
service mysql restart
service mysql stop

【配置】

寻找配置文件路径:

mysqladmin --help

输出:

...
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
...

搜索 my.cnf 文件:

find / -name my.cnf

输出:

/etc/my.cnf

搜索 mysql 文件:

find / -name mysql

输出:

/usr/bin/mysql
/usr/share/selinux/packages/mysql
/usr/share/selinux/targeted/default/active/modules/100/mysql
/usr/share/mysql
/usr/lib64/mysql
/var/lib/selinux/targeted/active/modules/100/mysql
/var/lib/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/var/log/mysql

【排错】

报错:The server requested authentication method unknown to the client [caching_sha2_password]

如果在安装 MySQL 时启用了认证模块,会导致这个报错。

参考:https://www.cnblogs.com/cndavidwang/p/9357684.html

编辑 /etc/my.cnf :

# default-authentication-plugin=mysql_native_password

删除注释符号“#”并重新启动mysqld使之生效,此后创建的账户均默认使用mysql_native_password。

报错:ERROR 1193 (HY000): Unknown system variable ‘validate_password_policy’

参考:https://blog.csdn.net/HaHa_Sir/article/details/80552663

validate_password_policy 有以下取值:

Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

MySQL 8.0 查看密码验证插件:

SHOW VARIABLES LIKE 'validate_password%';

输出:

+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)

输入:

set global validate_password.policy=0;

然后尝试设置密码即可。

报错:mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers

参考:https://www.techgalery.com/2020/03/mysqlirealconnect-server-sent-charset.html

编辑 /etc/my.cnf :

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
default-authentication-plugin=mysql_native_password
collation-server = utf8_unicode_ci
character-set-server = utf8

【版本】

如果需要指定的 MySQL 版本。

参考:https://www.jianshu.com/p/f46b6f089328

// 查看 YUM 仓库关于 MySQL 的所有仓库列表 5.5 5.6 5.7 8.0
yum repolist all | grep mysql
// 只查看启用的
yum repolist enabled | grep mysql
// 安装 YUM 管理工具包,此包提供了 yum-config-manager 命令工具
yum install yum-utils
// 禁用 8.0
yum-config-manager --disable mysql80-community
// 启用 5.7
yum-config-manager --enable mysql57-community
// 再次确认启用的 MySQL 仓库
yum repolist enabled | grep mysql
// 开始安装 MySQL
yum install -y  mysql-community-server

【卸载】

【卸载(CentOS 7)】

sudo yum -y remove mysql-community-server
sudo yum -y remove mysql-community*

【卸载(CentOS 8)】

sudo dnf remove @mysql