初次安装mysql,登录时需要密码解决方法:
#1.停止mysql数据库 /etc/init.d/mysqld stop #2.执行如下命令 mysqld_safe --user=mysql --skip-grant-tables --skip-networking & #3.使用root登录mysql数据库 mysql -u root mysql #4.更新root密码(有的版本PASSWORD更改为authentication_string) mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root'; #5.刷新权限 mysql> FLUSH PRIVILEGES; #6.退出mysql mysql> quit #7.重启mysql /etc/init.d/mysqld restart #8.使用root用户重新登录mysql mysql -uroot -p Enter password: <输入新设的密码newpassword>
登录后可能出现:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
需要重新设置密码,mysql默认安装validate_password插件,对密码验证较为严格。
可修改密码验证为按长度验证:
mysql> set global validate_password_policy=0;
最小长度默认为8,可修改为4:
mysql> set global validate_password_length=1;
详细参考文档:http://www.cnblogs.com/ivictor/p/5142809.html
远程连接mysql设置:
如果你想连接你的MySQL的时候发生这个错误: ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
1. 改表法。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmware
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2. 授权法。
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY '1235' WITH GRANT OPTION;
mysql>flush privileges; 这句一定要加上!!!
详细参考文档:http://blog.csdn.net/ei__nino/article/details/25069391
Can't connect to MySQL server (10060)异常解决方法
原因是3306端口被被防火墙禁掉,无法连接到该端口。
解决方法如下:
在iptables中开放3306端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
# service iptables restart 重启生效
当然除了开放3306端口外,还有一个方法就是关闭防火墙,
命令为: # service iptables stop
不过,不推荐这种做法,因为这会引起安全性问题。
详细参考文档:http://www.linuxidc.com/Linux/2014-09/106884.htm