Mysql 5.7 安装与卸载(非常详细)

一、环境介绍

操作系统:CentOS 7

MySQL:5.7

二、MySQL卸载

# 查看软件
rpm -qa|grep mysql
# 卸载MySQL
yum remove -y mysql mysql-libs mysql-common
rm -rf /var/lib/mysql
rm /etc/my.cnf

继续查看是否还有 MySQL 软件,有的话继续删除。

一个一个将上面的文件删除

rpm -e mysql-community-common-5.7.44-1.el7.x86_64

软件卸载完毕后如果需要可以删除 MySQL 的数据库: /var/lib/mysql

三、MySQL安装

3.1 安装

#下载yum源
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
#安装yum源
yum -y install mysql57-community-release-el7-11.noarch.rpm
#使用此命令可以查看 MySQL Yum 存储库中的所有子存储库,并查看其中哪些子存储库已启用或禁用
yum repolist all | grep mysql
#关闭mysql8的下载源
yum-config-manager --disable mysql80-community
#开启mysql5.7下载源
yum-config-manager --enable mysql57-community
#安装mysql5.7
yum install -y mysql-community-server --nogpgcheck

3.2 配置

vim /etc/my.cnf

修改内容如下

[mysqld]
# MySQL设置大小写不敏感:默认:区分表名的大小写,不区分列名的大小写
# 0:大小写敏感 1:大小写不敏感
lower_case_table_names=1
# 默认字符集
character-set-server=utf8

3.3 启动

systemctl start mysqld

3.4 设置root用户密码

安装了mysql5.7之后初始密码不再默认为空,初始密码会生成一个默认密码。密码会输出到mysql日志中。日志文件的位置在 /var/log/mysqld.log

查看初始密码

cat /var/log/mysqld.log | grep password

查询结果如下:

 最后一个临时密码就是.

修改初始密码

#1.根据临时密码,登录mysql
mysql -uroot -p
#2.设置密码长度最低位数
set global validate_password_length=4;
#3.设置密码强度级别
set global validate_password_policy=0;
#4.修改密码
alter user 'root'@'localhost' identified by 'Aa123456';

MySQL 的密码规则可以通过系统变量 validate_password_policy 来设置,该变量的取值范围为0、1、2,默认值为1。

validate_password_policy取值说明:

  •  0(LOW):只校验密码长度。

  • 1(MEDIUM):校验密码长度、大小写和特殊字符。

  • 2(STRONG):校验密码长度、大小写、特殊字符和字典文件。

四、远程连接MySQL授权

创建用户授权流程:

4.1 创建用户

创建用户基本语法

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

 示例:

# 只能在MySQL服务器登录
CREATE USER 'xh'@localhost IDENTIFIED BY '12345678';
# or 只能在指定ip登录
CREATE USER 'xh'@'192.168.10.1' IDENTIFIED BY '12345678';
# or 在所有ip都可以登录
CREATE USER 'xh'@'%' IDENTIFIED BY '12345678';

4.2 授权

授权用户基本语法

GRANT privileges ON database.table TO 'username'@'host';

对应的参数如下:

  • privileges:要授予的权限列表,可以是一个或多个权限,用逗号分隔
  • database:数据库名
  • table:表名,可以使用通配符*表示所有数据库或所有表
  • 'username'@'host':用户及其允许连接的主机

常见的权限如下:

 示例:

# 授予多种权限:
# 授予user1对mydatabase数据库中所有表的SELECT、INSERT和UPDATE权限:
GRANT SELECT, INSERT, UPDATE ON mydatabase.* TO 'user1'@'localhost';

# 授予所有权限:
# 授予user1对mydatabase数据库中所有表的所有权限:
GRANT ALL PRIVILEGES ON mydatabase.* TO 'user1'@'localhost';
或
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

# 授予全局权限:
# 授予user1全局CREATE和DROP权限:
GRANT CREATE, DROP ON *.* TO 'user1'@'localhost';

 4.3 刷新权限,使授权生效

FLUSH PRIVILEGES;