centos7安装mysql-8,找到初始默认密码、登陆、修改密码,远程访问,远程连接数据库授权,设置简单密码。
1、下载
下载mysql官网地址:https://dev.mysql.com/downloads/file/?id=484537.点击页面底部No thanks, just start my download.开始下载。
2、安装
解压安装包:tar -xvf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar;
文件安装顺序:common --> libs --> client --> server --> devel。(devel可不装)安装命令:rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm
当提示“mariadb-libs 被 mysql-community-libs-8.0.15-1.el7.x86_64 取代”,是lib和系统自带的冲突,删除后继续:yum remove mysql-libs -y
依赖缺失时“net-tools 被 mysql-community-server-8.0.15-1.el7.x86_64 需要”,直接安装缺失的依赖:yum install net-tools -y
过程如下:
[root@localhost mysql]# ll --进入上传文件的目录,查看文件
总用量 508952
-rw-r--r--. 1 root root 521164800 4月 15 14:36 mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
[root@localhost mysql]# tar -xvf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
mysql-community-server-8.0.15-1.el7.x86_64.rpm
mysql-community-client-8.0.15-1.el7.x86_64.rpm
mysql-community-common-8.0.15-1.el7.x86_64.rpm
mysql-community-libs-8.0.15-1.el7.x86_64.rpm
mysql-community-devel-8.0.15-1.el7.x86_64.rpm
mysql-community-test-8.0.15-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.15-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.15-1.el7.x86_64.rpm
[root@localhost mysql]# rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm
警告:mysql-community-common-8.0.15-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-common-8.0.15-1.e################################# [100%]
[root@localhost mysql]# rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm
警告:mysql-community-libs-8.0.15-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
mariadb-libs 被 mysql-community-libs-8.0.15-1.el7.x86_64 取代
[root@localhost mysql]# yum remove mysql-libs -y
已加载插件:fastestmirror *************** 完毕!
[root@localhost mysql]# rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm
警告:mysql-community-libs-8.0.15-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-libs-8.0.15-1.el7################################# [100%]
[root@localhost mysql]# rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm
警告:mysql-community-client-8.0.15-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-client-8.0.15-1.e################################# [100%]
[root@localhost mysql]# rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm
警告:mysql-community-server-8.0.15-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
net-tools 被 mysql-community-server-8.0.15-1.el7.x86_64 需要
[root@localhost mysql]# yum install net-tools -y
已加载插件:fastestmirror ***************** 完毕!
[root@localhost mysql]# rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm
警告:mysql-community-server-8.0.15-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-server-8.0.15-1.e################################# [100%]
注意点:报错libsasl2.so.2()(64bit) is needed by mysql-community-server-8.0.16-2.el6.x86_64
不断的搜索终于搜索到方法,rpm命令增加 --force --nodeps 解决问题。
[root@localhost mysql]# rpm -ivh mysql-community-devel-8.0.15-1.el7.x86_64.rpm
警告:mysql-community-devel-8.0.15-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
pkgconfig(openssl) 被 mysql-community-devel-8.0.15-1.el7.x86_64 需要
[root@localhost mysql]# yum install openssl-devel -y
已加载插件:fastestmirror ******************** 完毕!
[root@localhost mysql]# rpm -ivh mysql-community-devel-8.0.15-1.el7.x86_64.rpm
3、找到密码、登陆、修改密码
找到安装日志:/var/log/mysqld.log
查看日志中的密码:A temporary password is generated for root@localhost: #+Tp!)#Fv6e;(注意:分号也属于密码)
[root@localhost /]# cd /var/log/
[root@localhost log]# cat mysqld.log
2019-04-16T02:32:17.449527Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.15) initializing of server in progress as process 7205
2019-04-16T02:32:25.466789Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: #+Tp!)#Fv6e;
重启MySQL服务:service mysqld restart 或者 /bin/systemctl restart mysqld.service(这里没有设置,只能用第二个方法启动)
登陆:mysql -u root -p,密码是前面查看日志得到的。
修改登陆密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'QWE123@qweasd';如果提示“Your password does not satisfy the current policy requirements”,而自己又不想设置那么复杂的密码,看最后步骤修改密码校验。在这里设置密码校验的话,flush privileges;会重置原先从状态。
开放所有ip地址都能访问:CREATE USER 'root'@'%' IDENTIFIED BY 'root123';root123是你自己设置的密码,若执行开放指定ip能访问,把%换成ip地址。
修改加密方式:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123';MySQL8默认是caching_sha2_password
开放防火墙端口
查看防火墙开放的端口。firewall-cmd --zone=public --list-ports
开启防火墙端口3306:firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost /]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service
[root@localhost /]# /bin/systemctl restart mysqld.service
[root@localhost /]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.15
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'QWE123@qweasd';
mysql> flush privileges;
Query OK, 0 rows affected (0.01 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 host, user, authentication_string, plugin from user;
+---------------+------------------+------------------------------------------------------------------------+-----------------------+
| host | user | authentication_string | plugin |
+---------------+------------------+------------------------------------------------------------------------+-----------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root | $A$005$dk,F%
L^} :S~YKphTcC.p3U1zuJjR1ZRL6zcMxyVLV4a3X9Uey9o6aQS3 | caching_sha2_password |
+---------------+------------------+------------------------------------------------------------------------+-----------------------+
5 rows in set (0.00 sec)
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root123';
Query OK, 0 rows affected (0.01 sec)
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123';
Query OK, 0 rows affected (0.01 sec)
mysql> select host, user, authentication_string, plugin from user;
+---------------+------------------+------------------------------------------------------------------------+-----------------------+
| host | user | authentication_string | plugin |
+---------------+------------------+------------------------------------------------------------------------+-----------------------+
| % | root | *FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2 | mysql_native_password |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root | $A$005$dk,F%
L^} :S~YKphTcC.p3U1zuJjR1ZRL6zcMxyVLV4a3X9Uey9o6aQS3 | caching_sha2_password |
+---------------+------------------+------------------------------------------------------------------------+-----------------------+
6 rows in set (0.00 sec)
mysql>
[root@localhost ~]# firewall-cmd --zone=public --list-ports
80/tcp 8080/tcp 8081/tcp 8761/tcp
[root@localhost ~]# firewall-cmd --permanent --add-port=3306/tcp
success
[root@localhost ~]# firewall-cmd --zone=public --list-ports
80/tcp 8080/tcp 3306/tcp 8081/tcp 8761/tcp
远程连接数据库授权
创建数据库:CREATE SCHEMA `testd_atabase` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
授权远程连接:grant all on testd_atabase.* to 'root'@'%' identified by 'root123' with grant option;
如果在客户端创建表时报错:"Error 1142: CREATE command denied to user 'root'@'192.168.85.1' for table 'test_table'",查看user表中'root'@'%'没有grant的权限:select Grant_priv,Super_priv from user where user = 'root' and host = '%';(如果你是指定的IP权限,这里的%换成指定的IP),结果改为“Y”,我是设置全部为“Y”,建议不要
[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.15 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE SCHEMA `testd_atabase` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
Query OK, 1 row affected, 2 warnings (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| testd_atabase |
+--------------------+
5 rows in set (0.00 sec)
mysql> grant all on testd_atabase.* to 'root'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on *.* to 'root'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> update mysql.user set Grant_priv='Y',Super_priv='Y' ;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 5 Changed: 3 Warnings: 0
mysql> select host,Grant_priv,Super_priv from mysql.user ;
+-----------+------------+------------+
| host | Grant_priv | Super_priv |
+-----------+------------+------------+
| % | Y | Y |
| localhost | Y | Y |
| localhost | Y | Y |
| localhost | Y | Y |
| localhost | Y | Y |
+-----------+------------+------------+
5 rows in set (0.00 sec)
mysql> quit
Bye
[root@localhost ~]# /bin/systemctl restart mysqld.service
到这里,就可以访问你的远程操作数据库了。
附:
设置登陆密码的复杂度。在设置登陆密码时,总会提示:“Your password does not satisfy the current policy requirements”。
首先查看密码规则: SHOW VARIABLES LIKE 'validate_password%';
length设置:set global validate_password.length=4;
policy设置:set global validate_password.policy=0;
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
mysql> set global validate_password.length=4;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 4 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | LOW |
| validate_password.special_char_count | 1 |
+--------------------------------------+-------+