yum安装mysql8+踩坑记录

当前服务器和mysql基本信息

  • 标准型S4 centOS7.5 64位
  • 1 核 2 GB 1 Mbps
  • 腾讯云
  • mysql Ver 8.0.18 for Linux on x86_64 (MySQL Community Server - GPL)

1、到官网下载repository

  • windows下载: https://dev.mysql.com/downloads/repo/yum/ (25kb左右)

  • Linux命令行(对应的下载地址):

    [root@VM_0_11_centos rpms]# wget -i -c https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
    

2、上传并安装MySql repository

  • 上传MySql repository

    • xftp 等可视化上传工具上传

    • 命令行 rz 上传,rz安装和使用方法 https://www.cnblogs.com/nbf-156cwl/p/8641165.html

      [root@VM_0_11_centos rpms]# rz 
      
  • 安装MySql repository,一路yes就行了

    [root@VM_0_11_centos rpms]# yum -y install mysql57-community-release-el7-10.noarch.rpm
    
  • 更新yum仓库,一路yes就行了

    [root@VM_0_11_centos rpms]# yum update
    
  • 安装mysql,一路yes就行了,根据网速决定你等待的时间,大小大概在400MB+

    [root@VM_0_11_centos rpms]# yum -y install mysql-community-server
    

3、启动并配置MySql

  • 启动MySql服务

    [root@VM_0_11_centos rpms]# systemctl start  mysqld.service
    
  • 检查一下服务状态是否是:running

    [root@VM_0_11_centos rpms]# systemctl status mysqld.service
    ● mysqld.service - MySQL Server
       Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
       Active: active (running) since Wed 2019-11-06 10:52:55 CST; 11min ago
         Docs: man:mysqld(8)
               http://dev.mysql.com/doc/refman/en/using-systemd.html
      Process: 946 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
     Main PID: 3087 (mysqld)
       Status: "Server is operational"
       CGroup: /system.slice/mysqld.service
               └─3087 /usr/sbin/mysqld
    
    Nov 06 10:52:38 VM_0_11_centos systemd[1]: Starting MySQL Server...
    Nov 06 10:52:55 VM_0_11_centos systemd[1]: Started MySQL Server.
    
  • 找到安装的初始密码,密码在最后面:Khp?geIig8.&

    [root@VM_0_11_centos rpms]# grep "password" /var/log/mysqld.log
    2019-11-06T02:52:46.432088Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Khp?geIig8.&
    
  • 命令登陆mysql

    [root@VM_0_11_centos rpms]# mysql -uroot -p
    Enter password: 这里输入刚才的初始密码,不会回显的,注意别输错了
    

修改密码策略,注意!

以前的策略对应的修改命令:

```mysql
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
```

8+的策略

```mysql
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password.length=1;
Query OK, 0 rows affected (0.00 sec)
```

新老策略对比

```
老版本的密码策略变量:
validate_password_policy 用于控制validate_password的验证策略 0->low 1->MEDIUM 2->strong。
validate_password_length密码长度的最小值(这个值最小要是4)。
validate_password_number_count 密码中数字的最小个数。
validate_password_mixed_case_count大小写的最小个数。
validate_password_special_char_count 特殊字符的最小个数。
validate_password_dictionary_file 字典文件
8.0后要注意密码策略变量变化
validate_password.check_user_name ON
validate_password.dictionary_file
validate_password.length
validate_password.mixed_case_count
validate_password.number_count
validate_password.policy
validate_password.special_char_count

如:
  validate_password_policy 变为 validate_password.policy.
所以
  set global validate_password_policy=0;
变为 
  set global validate_password.policy=0;
密码最小长度(6):
  set global validate_password_length=6;
变为
  set global validate_password.length=6
```

修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
Query OK, 0 rows affected (0.00 sec)

4、开启远程访问权限

查看当前访问权限

mysql> select user, host from user;
ERROR 1046 (3D000): No database selected

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select user,host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

修改远程访问权限,修改完后注意要刷新才能生效,然后就可以使用navicat之类的可视化工具远程访问了

mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

你可能感兴趣的:(yum安装mysql8+踩坑记录)