安装单机版MySQL

1.      下载MySQL安装包

  1. 访问地址https://dev.mysql.com/downloads/mysql/,选择对应的Linux版本(CentOS选择Red hat)和x86/x64进行下载。

图-1 下载MySQL

 

  1. 下载后,将压缩包上传到虚拟机中,并解压:tar –xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

图-2 解压

 

2.      卸载旧版本的MySQL(若没有则跳过此步骤)

  1. 查看旧版本MySQLrpm –qa | grep mysql

 

  1. 逐个删除掉旧的组件。使用命令rpm -e --nodeps {-file-name}进行移除操作,移除的时候可能会有依赖,要注意移除的顺序。

 

3.      安装MySQL组件

按照以下顺序,依次执行命令安装rpm包。

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

4.      启动mysql服务

  1. 使用systemctl start mysqld.service 启动MySQL服务。

  1. 使用systemctl enable mysqld.service设置开机启动。

 

5.      创建mysql密码

  1. 查找临时密码:由于MySQL5.7.4之前的版本中默认是没有密码的,登录后直接回车就可以进入数据库,进而进行设置密码等操作。其后版本对密码等安全相关操作进行了一些改变,在安装过程中,会在安装日志中生成一个临时密码。查找方法:

  1. 使用grep 'temporary password' /var/log/mysqld.log即可查询到类似于如下的一条日志记录:[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log

  1. /var/log/mysqld.log文件中搜索字段“temporary password”:2019-07-06T08:52:01.624650Z 1 [Note] A temporary password is generated for root@localhost: kfyHk8(-Iwo7

  1. 其中,“kfyHk8(-Iwo7”即为登录密码。

  1. 使用临时密码登入MySQL

  1. 使用临时密码登录进去后,使用命令:[root@localhost ~]# mysql -uroot -p

  1. 输入密码:Enter password:   # 在此处输入密码。

  1. 使用quit命令退出MySQLmysql> quit      # 输入quit exit 都能退出mysql

  1. 创建root密码。

执行下面的命令修改MySql root密码:

mysql> alter user root@localhost identified by 'sdbrk';

mysql> set password for root@localhost=password('sdbrk');

5.6后,MySQL内置密码增强机制,低强度密码会报错:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

解决方案如下:

1.     更改策略,设置 validate_password_policy=0;

mysql> set global validate_password_policy=0;    # 此时,新密码长度大于等于8位才有效,否则报错。

修改有效密码长度:

mysql> set global validate_password_length=1;

Query OK, 0 rows affected (0.00 sec)

不管设置validate_password_length=1,还是234,“使密码长度生效”这个参数的实际值都是4。超过4后设置是多少实际就是多少。

2.     重设密码:

mysql> set password for root@localhost=password(' root ');

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

  1. 用户远程访问授权

  1. 此时,虽然防火墙是关闭的,但root用户只能用于本机访问,不能用于远程访问。因此,接下来要授予root用户远程访问权限。使用命令:mysql> grant all privileges on *.* to root@'%' identified by ' root ';

  1. 刷新权限,使设置生效。mysql> flush privileges;