在 CentOS 7 中安装 MySQL 8 的教程详解
准备
本文环境信息:
版本
CentOS
CentOS7.4
MySQL
8.0.x
安装前先更新系统所有包
sudoyumupdate
安装
1.添加Yum包
wgethttps://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm #或者wgethttp://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm sudoyumupdate sudorpm-ivhmysql80-community-release-el7-1.noarch.rpm
注:在官网可以找到最新的rpm包名。
2.安装MySQL
#安装 sudoyum-yinstallmysql-community-server #启动守护进程 sudosystemctlstartmysqld #查看状态 sudosystemctlstatusmysqld #查看版本 mysql-V
安装完后,MySQL会在系统启动时自动启动,如果不想让它自动启动,可以使用systemctldisablemysqld关闭它。
3.修改密码
MySQL安装过程中会为root用户生成一个临时密码,保存在/var/log/mysqld.log中。通过以下命令查看:
sudogrep'temporarypassword'/var/log/mysqld.log
进入MySQL客户端修改:
mysql-uroot-p ALTERUSER'root'@'localhost'IDENTIFIEDBY'yourpassowrd'; #ALTERUSER'root'@IDENTIFIEDBY'yourpassowrd';
密码强度要求是:不少于12字符,必须包含大写字母、小写字母、数字和特殊字符。
3.MySQL安全配置
MySQL包含一个安全设置向导脚本,可以用它来修改安全选项。
sudomysql_secure_installation
运行后依次设置以下几项:
1.修改root账号密码
2.密码强度验证插件(建议使用)
3.移除匿名用户(建议移除)
4.禁用root账户远程登录
5.移除测试数据库(test)
根据个人情况设置。
用户权限
1.赋予权限
#创建本地用户 CREATEUSER'user'@'localhost'IDENTIFIEDBY'password'; #新建远程用户 CREATEUSER'user'@'%'IDENTIFIEDBY'password'; #新建数据库 CREATEDATABASEtest_db; #查看用户权限 SHOWGRANTSFOR'user'@'%'; #赋予用户指定数据库远程访问权限 GRANTALLPRIVILEGESONtest_db.*TO'user'@'%'; #赋予用户对所有数据库远程访问权限 GRANTALLPRIVILEGESON*.*TO'user'@'%'; #赋予用户对所有数据库本地访问权限 GRANTALLPRIVILEGESON*.*TO'user'@'localhost'; #刷新权限 FLUSHPRIVILEGES;
2.收回权限
#收回权限 REVOKEALLPRIVILEGESON*.*FROM'test'@'%'; #删除本地用户 DROPUSER'user'@'localhost'; #删除远程用户 DROPUSER'user'@'%'; #刷新权限 FLUSHPRIVILEGES;
3.远程登录
在mysql数据库查看user表信息:
usemysql; selecthost,user,authentication_string,pluginfromuser;
表格中root用户的host默认是localhost,只允许本地访问。授权root用户的所有权限并设置远程访问:
#授权 GRANTALLON*.*TO'root'@'%'; #刷新 FLUSHPRIVILEGES;
root用户默认的密码加密方式是:caching_sha2_password;而很多图形客户端工具可能还不支持这种加密认证方式,连接的时候就会报错。通过以下命令重新修改密码:
ALTERUSER'root'@'%'IDENTIFIEDWITHmysql_native_passwordBY'yourpassword';
这里指定了root的密码加密方式为mysql_native_password,如果想改变默认密码加密方式都是,可以在/etc/my.cnf文件加上一行:
default-authentication-plugin=mysql_native_password
如果服务器开启了防火墙,则需要打开3306端口。
firewall-cmd--add-port=3306/tcp--permanent firewall-cmd--reload
注意:如果是云服务器,有的服务商(如阿里云)需要到控制台去开放端口的。
修改字符编码
字符集是一套符号和编码,查看字符集配置:
mysql>showvariableslike'charac%'; +--------------------------+--------------------------------+ |Variable_name|Value| +--------------------------+--------------------------------+ |character_set_client|utf8mb4| |character_set_connection|utf8mb4| |character_set_database|utf8mb4| |character_set_filesystem|binary| |character_set_results|utf8mb4| |character_set_server|utf8mb4| |character_set_system|utf8| |character_sets_dir|/usr/share/mysql-8.0/charsets/| +--------------------------+--------------------------------+
字符集生效规则为:Table继承于Database,Database继承于Server。就是说,可只设置character_set_server。
校对规则是在字符集内用于比较字符的一套规则,查看校对规则:
mysql>showcharactersetlike'utf8%'; +---------+---------------+--------------------+--------+ |Charset|Description|Defaultcollation|Maxlen| +---------+---------------+--------------------+--------+ |utf8|UTF-8Unicode|utf8_general_ci|3| |utf8mb4|UTF-8Unicode|utf8mb4_0900_ai_ci|4| +---------+---------------+--------------------+--------+
校对规则生效规则:如果没有设置校对规则,字符集取默认校对规则,例如utf8mb4的校对规则是utf8mb4_0900_ai_ci。
MySQL8默认字符集改成了utf8mb4。之前的MySQL版本如果默认字符集不是utf8mb4,建议改成utf8mb4。
mb4即mostbytes4。为什么是utf8mb4,而不是utf8?MySQL支持的utf8编码最大字符长度为3字节,如果遇到4字节的宽字符就会插入异常。
下面是老版MySQL修改字符集为utf8mb4的步骤,MySQL8.0+无需修改。
#查看配置文件位置 whereismy.cnf #打开文件 vi/etc/my.cnf
增加字符编码配置项:
[client] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci
重启MySQL服务
sudosystemctlrestartmysqld
使用MySQL命令检查字符集配置:
showvariableslike'charac%';
参考
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
https://ken.io/note/centos-mysql8-setup
推荐:
感兴趣的朋友可以关注小编的微信公众号【码农那点事儿】,更多网页制作特效源码及学习干货哦!!!
总结
以上所述是小编给大家介绍的在CentOS7中安装MySQL8的教程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!