停止mysql service mysql stop
运行mysqld_safe --skip-grant-tables &
如果此时不想被远程连接:mysqld_safe --skip-grant-tables --skip-networking &
如果出现ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误信息,这和密码的安全等级相关,查看安全等级命令如下
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| 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 |
+--------------------------------------+--------+
通过 SET GLOBAL validate_password_policy='LOW'; 命令,降低安全等级后,就可以直接使用,限制是必须8个字符以上;
关于安全等级更详细的介绍如下
LOW 政策只测试密码长度。 密码必须至少有8个字符长。
MEDIUM 政策的条件 密码必须包含至少1数字字符,1 大写和小写字符,和1特别 (nonalphanumeric)字符。
STRONG 政策的情况 密码子字符串长度为4的或更长时间不能匹配 单词在字典文件中,如果一个人被指定。
为了解决密码失效的问题, 最后在配置文件的[mysqld]字段下,增加以下字段
[mysqld]
default_password_lifetime=0
也可以通过命令行进行设置
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER
关于密码有效期相关的更多信息,可以参考 http://dev.mysql.com/doc/refman/5.7/en/password-expiration-policy.html
打开MySQL数据库远程访问的权限
改表法
可能是你的帐号不允许从远程登陆,只能在localhost,这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
//赋予任何主机访问数据的权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
//如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
运行mysqld_safe --skip-grant-tables &
如果此时不想被远程连接:mysqld_safe --skip-grant-tables --skip-networking &
修改密码执行
mysql>update mysql.user set authentication_string=password('new_password') where user='root' and Host = 'localhost';
重启mysql,执行
mysql> alter mysql.user 'root'@'localhost' identified by 'new_password'
网文说也可以:set password for 'root'@'localhost'=password('new_password')如果出现ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误信息,这和密码的安全等级相关,查看安全等级命令如下
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| 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 |
+--------------------------------------+--------+
通过 SET GLOBAL validate_password_policy='LOW'; 命令,降低安全等级后,就可以直接使用,限制是必须8个字符以上;
关于安全等级更详细的介绍如下
LOW 政策只测试密码长度。 密码必须至少有8个字符长。
MEDIUM 政策的条件 密码必须包含至少1数字字符,1 大写和小写字符,和1特别 (nonalphanumeric)字符。
STRONG 政策的情况 密码子字符串长度为4的或更长时间不能匹配 单词在字典文件中,如果一个人被指定。
为了解决密码失效的问题, 最后在配置文件的[mysqld]字段下,增加以下字段
[mysqld]
default_password_lifetime=0
也可以通过命令行进行设置
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER
关于密码有效期相关的更多信息,可以参考 http://dev.mysql.com/doc/refman/5.7/en/password-expiration-policy.html
打开MySQL数据库远程访问的权限
改表法
可能是你的帐号不允许从远程登陆,只能在localhost,这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
或者执行
mysql> update user set host = '%' where user = 'root';
授权法//赋予任何主机访问数据的权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
//如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.6'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
新特性
1.MySQL5.7版本终于支持了原生的JSON格式,即将关系型数据库和文档型NO_SQL数据库集于一身
2.UNDO log在线收缩