标签 MySQL 下的文章

今天又迁移了一遍服务器,在配置MySQL出现了一些问题。

在配置好MySQL后,打开站点,WordPress出现了“Error establishing a database connection”错误,这个错误在上次迁移也遇到过,于是不得不降级使用Debian8,在查询了无数次资料后,找到了原因:

由于mysql 5.0采用了一种新的密码验证机制,这需要客户端的版本要在4.0以上(PHP中的MYSQL客户端可以查看phpinfo得到),连接数据库时是用旧的密码机制,这会出现“Client does not support authentication protocol requested by server”这样的错误提示。

解决办法是新建一个账户:

create user 'user'@'localhost' identified by 'passwd';
(MySQL环境下)

但又会遇到另一个错误:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
(您的密码不符合当前的策略要求)

还是密码验证机制的问题,输入以下命令解决:

set global validate_password_policy=0;
(MySQL环境下)

validate_password_policy的取值:

Policy            Tests Performed
0 or LOW            Length
1 or MEDIUM    Length; numeric, lowercase/uppercase, and special characters
2 or STRONG    Length; numeric, lowercase/uppercase, and special characters; dictionary file
(默认值为1)

修改后再新建用户,给予用户相关权限即可。

我的服务器是 Debian 8,不同的Linux发行版有一定差异。

1 下面我们来安装MySQL。

1.一条命令解决

root@Server:~# sudo apt-get install mysql-server -y

在安装过程中会要求设置root用户密码(此root非彼root)。

270_4.png

如果没有要求设置的话好像要进安全模式改。

2.安装PHP扩展

root@Server:~# sudo apt-get install php5-mysql -y

2 基础操作命令

root@Server:~# mysql -u root -p //-u 指定用户
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 56
Server version: 5.5.58-0+deb8u1 (Debian)

Copyright (c) 2000, 2017, 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> show databases; //查看已有数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.01 sec)

mysql> create database test; //新建名叫test的数据库
Query OK, 1 row affected (0.00 sec)

mysql> show databases; //查看
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> drop database test; //删除名叫test的数据库
Query OK, 0 rows affected (0.05 sec)

mysql> show databases; //查看
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

mysql>quit; //退出
Bye
root@Server:~# mysqladmin -u root -p password "test" //修改密码,test为新密码
Enter password:
(也可以在MySQL内直接操作mysql表)