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

mysql中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.noarch

Last updated

Was this helpful?