跳转至

Mysql

此处介绍redhat7.8上安装mysql5.8. 其余版本安装方式一样.

由于redhat7使用的是mariadb(Mysql的分支),
Mysql可以在线安装.
也可以离线安装(需要在联网设备上把离线包下载好).

卸载mariadb

Bash
1
2
3
#查询是否安装了mariadb
#如果安装了,就卸载,如果没安装就跳过
yum remove mariadb-server

直接下载离线包

官网下载地址

添加仓库

yum仓库选择对应的版本下载
可以用wget命令直接下载到设备上.

安装仓库

Bash
1
rpm -Uvh platform-and-version-specific-package-name.rpm

查看版本

Bash
1
2
3
4
5
6
#查看已经有得版本
yum repolist all | grep mysql
#禁用不需要的版本
yum-config-manager --disable mysql80-community
#启动特定版本
yum-config-manager --enable mysql80-community

禁用默认的

在redhat8上禁用默认的Mysql模块.

Bash
1
yum module disable mysql

安装

Bash
1
2
#在线安装
yum install mysql-community-server

启动

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#启动mysql服务
systemctl start mysqld.service
#安装时,默认会产生一个零时随机密码,
grep 'temporary password' /var/log/mysqld.log
#登录mysql
mysql -u root -p
#输入上一步获取的零时密码
#更新密码,新密码需要:大小写,特殊字数,数字键组合
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
#查看密码认证策略
SHOW VARIABLES LIKE 'validate_password%';

认证属性

Variable_name desp
validate_password.check_user_name 用户名检测,检测是否重名
validate_password.dictionary_file 字典文件
validate_password.length 密码长度的最小值
validate_password.mixed_case_count 密码中大小字母的长度
validate_password.number_count 密码中数字个数
validate_password.policy 安全强度
validate_password.special_char_count 特殊字符的最小个数
Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#注意区分mysql8.0和5.x一下变量名字不同
#修改命令
set global validate_password_check_user_name = off;
set global validate_password_length = 4;
set global validate_password_mixed_case_count = 0;
set global validate_password_number_count = 0;
set global validate_password_policy = 0;
set global validate_password_special_char_count = 0;
#改完
flush privileges;
########################
#或者将以上配置写入配置文件
#路径: /etc/my.cnf
validate_password_check_user_name = off
validate_password_length = 4
validate_password_mixed_case_count = 0
validate_password_number_count = 0
validate_password_policy = 0
validate_password_special_char_count = 0

简单使用

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#直接在shell上操作
#新建用户
mysql -uroot -ppwd -e "create user'name'@'%' identified by 'pwd';"
#新建数据库
mysql -uroot -ppwd -e "create database dbname;"
#赋予新用户操作数据库的所有权限
mysql -uroot -pnucleus -e "grant all on dbname.* to 'usrname'@'%';"
#刷新生效
mysql -uroot -pnucleus -e "flush privileges;"
##往数据库dbname数据库
mysql -uusr -ppwd dbname <  xxx.sql