CentOS上面由于没有现成的mysql包,因此在系统上面安装mysql数据库比Ubuntu复杂一点;
CentOS安装Mysql
- 首先查看本机是否已经安装mysql:
yum list installed | grep mysql
- 查看yum源中提供的mysql包:
yum list | grep mysql
- 发现centos7.2下面,没有可以直接用于安装的mysql包,手动下载安装包:
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
- 安装mysql源:
yum localinstall mysql57-community-release-el7-8.noarch.rpm -y
- 安装mysql服务器和客户端:
yum install mysql-community-server -y
- 启动mysql服务:
systemctl start mysqld
- 查看mysql服务启动状态,并配置成开机自启动:
systemctl status mysqld systemctl enable mysqld systemctl daemon-reload
- 安装成功之后,在
/var/log/mysqld.log
文件中会生成root的默认密码,查询到root默认密码并登陆:# grep 'temporary password' /var/log/mysqld.log 2017-09-08T02:14:29.220897Z 1 [Note] A temporary password is generated for root@localhost: vzSi.Xz>;0Uy
- 登录输入密码的时候需要输入默认设置好的密码:
mysql -u root -p Enter password:
- 登录输入密码的时候需要输入默认设置好的密码:
- 登陆后将密码设置成root,首先需要修改有效密码的规则,其次再修改密码:
#设置密码的规则,相当于正则表达式 set global validate_password_policy=0; set global validate_password_mixed_case_count=0; set global validate_password_special_char_count=0; set global validate_password_length=4; set global validate_password_number_count=0; mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); Query OK, 0 rows affected, 1 warning (0.00 sec)
- 要想从远地机器远程访问本机mysql服务,使用:
# mysql -u root -h 192.168.3.89 -P 3306 -p Enter password: ERROR 1130 (HY000): Host 'k8s-mst' is not allowed to connect to this MySQL server
-
发现报错,原因是因为系统数据库mysql中的user表的host是localhost,因此只能使用localhost方式登陆服务器,将host修改成为服务器的ip,可解决问题:
mysql -u root -p Enter password: mysql> use mysql; mysql> update user set host='192.168.3.89';
- 客户端退出mysql,之后重新启动mysql服务:
systemctl restart mysqld
- 做出这样的修改之后,以后想登陆mysql,必须使用IP的方式登陆,在本地不能使用localhost的方式了:
# mysql -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- 但是,客户端(192.168.3.87)在远程登陆mysql服务器还是报错:
# mysql -h 192.168.3.89 -P 3306 -p Enter password: ERROR 1130 (HY000): Host 'k8s-nod1' is not allowed to connect to this MySQL server
- 解决方案是在MySQL本地服务器中添加授权信息,允许root用户在任何机器上以root密码登陆mysql服务器:
set global validate_password_policy=0; set global validate_password_mixed_case_count=0; set global validate_password_special_char_count=0; set global validate_password_length=4; set global validate_password_number_count=0; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; FLUSH PRIVILEGES;
参考
CentOS 7.2 安装MySQL 5.7
mysql5.7设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql远程连接:ERROR 1130 (HY000): Host ‘...’ is not allowed to connect to this MySQL
报错:1130-host … is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost