CentOS 7 安装 mysql5.7.29

2020-03-23  本文已影响0人  赛亚人之神
1. 下载
curl -O https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar](https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar

2. 解压到 mysql 文件夹下
mkdir mysql
tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar

3. 防止安装出现问题,赋权限
chmod -R 777 mysql

4. 按照如下顺序执行安装
rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm

如果安装过程中出现这个错误就在后面添加 --force --nodeps,这可能是由于yum安装了旧版本的GPG keys造成的

配置数据库
1. vim /etc/my.cnf
添加如下三行
skip-grant-tables
character_set_server=utf8
init_connect='SET NAMES utf8'
image.png

skip-grant-tables:跳过登录验证(便于我们直接登录)
character_set_server=utf8:设置默认字符集UTF-8
init_connect='SET NAMES utf8':设置默认字符集UTF-8

1. 启动 mysql 服务
systemctl start mysqld.service

2. 启动客户端
mysql

3. 设置密码
update mysql.user set authentication_string=password('mysql') where user='root';

4. 立即生效
flush privileges;

此时我们查看 mysql 有哪些表会出现如下错误You must reset your password using ALTER USER statement before executing this statement

解决方式如下:


(1)MySQL版本5.7.6版本(以前)用户可以使用如下命令:
        mysql> SET PASSWORD = PASSWORD('l!vWT#mL93');
 
(2)MySQL版本5.7.6版本(开始后)的用户可以使用如下命令:
        mysql> ALTER USER USER() IDENTIFIED BY 'l!vWT#mL93';

将密码设置简单点

1. 查看密码策略
 SHOW VARIABLES LIKE 'validate_password%'; 

1)validate_password_length  固定密码的总长度;
2)validate_password_dictionary_file 指定密码验证的文件路径;
3)validate_password_mixed_case_count  整个密码中至少要包含大/小写字母的总个数;
4)validate_password_number_count  整个密码中至少要包含阿拉伯数字的个数;
5)validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;

2. 将密码强度设为 LOW
set global validate_password_policy=LOW;

3. 其他设置
set global validate_password_number_count=0;
set global validate_password_length=5;
set global validate_password_mixed_case_count=0;

4. 将密码设置为简单的密码
ALTER USER USER() IDENTIFIED BY 'mysql';

5. 开启远程访问权限
grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option;

6. 为了后期避免麻烦,将密码过期功能禁用,命令如下:
  ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
image.png

存储 emoj 表情,需要将 utf8 编码修改为 utf8mb4

编辑配 my.cnf 配置文件

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

重启 mysql 服务

systemctl stop mydqld.service
systemctl start mydqld.service
# 1. 查看数据库字符集
show variables like 'chara%';

# 2. 修改数据库字符集
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

# 3. 修改表字符集
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# 4. 修改字段字符集
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改数据库连接,我这里没用到(未验证
mysql://root:@127.0.0.1:3306/weibo?charset=utf8mb4

参考连接:

  1. https://segmentfault.com/a/1190000019635643
  2. https://www.zhijinyu.com/article/90/detail/
上一篇 下一篇

猜你喜欢

热点阅读