mysql安装
Mysql 5.7.28
下载 MySQL yum包
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm安装MySQL源
rpm -Uvh mysql57-community-release-el7-10.noarch.rpm安装MySQL服务端
yum install -y mysql-community-server异常情况:
使用yum -y install mysql-community-server安装mysql时候提示: The GPG keys listed for the “MySQL 5.7 Community Server” repository are already installed but they are not correct for this package. Check that the correct key URLs are configured for this repository.
执行一下
启动MySQL
systemctl start mysqld.service检查mysql是否动成功
systemctl status mysqld.service获取临时密码
MySQL5.7为root用户随机生成了一个密码
grep 'temporary password' /var/log/mysqld.log 修改密码
通过临时密码登录MySQL,进行修改密码操作
登录
mysql -uroot -p修改密码规则
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;设置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';授权其他机器远程登录
修改mysql配置
注释掉/etc/mysql/my.cnf文件中bind-address = 127.0.0.1
/etc/mysql/my.cnf文件中bind-address = 127.0.0.1mysql中user表修改
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;打开服务器防火墙端口:3306
开启开机自启动
systemctl enable mysqld
systemctl daemon-reload设置字符集
utf8与utf8mb4(utf8 most bytes 4)
MySQL 5.5.3之后增加了utfmb4字符编码
支持BMP(Basic Multilingual Plane,基本多文种平面)和补充字符
最多使用四个字节存储字符
utf8mb4是utf8的超集并完全兼容utf8,能够用四个字节存储更多的字符。
标准的UTF-8字符集编码是可以使用1-4个字节去编码21位字符,这几乎包含了世界上所有能看见的语言。 MySQL里面实现的utf8最长使用3个字符,包含了大多数字符但并不是所有。例如emoji和一些不常用的汉字,如“墅”,这些需要四个字节才能编码的就不支持。
字符集、连接字符集、排序字符集
utf8mb4对应的排序字符集有utf8mb4_unicode_ci、utf8mb4_general_ci.
utf8mb4_unicode_ci和utf8mb4_general_ci的对比:
准确性:
utf8mb4_unicode_ci是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序
utf8mb4_general_ci没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。
但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。
性能
utf8mb4_general_ci在比较和排序的时候更快
utf8mb4_unicode_ci在特殊情况下,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。
但是在绝大多数情况下发,不会发生此类复杂比较。相比选择哪一种collation,使用者更应该关心字符集与排序规则在db里需要统一。
设置MySQL的字符集为UTF-8Mb4,令其支持中文
vim /etc/my.cnf修改如下
[client]
default-character-set = utf8mb4
# 对其他远程连接的mysql客户端的配置
[mysql]
default-character-set = utf8mb4
# 本地mysql服务的配置
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci重启一下MySQL,令配置生效
service mysqld restart卸载MySQL仓库
这个是将yum包里面的mysql仓库删除,防止每次yum操作都会消耗时间更新mysql仓库。
rpm -qa | grep mysql
yum -y remove mysql57-community-release-el7-10.noarchLast updated
Was this helpful?