ERROR 1045 (28000): Access denied for user

mysql登录的时候有这个错误:ERROR 1045 (28000): Access denied for user。 解决方法:

# /etc/init.d/mysqld stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysqld restart
# mysql -u root -p
Enter password: 
mysql>
搞定

安装blast2go数据库,所需知道的MySQL的编译和安装和简易使用

1 修改配置文件

# cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
# vim /etc/my.cnf
在 [mysqld] 下加入一行:
datadir=/var/lib/mysql

2 创建系统自带的数据库和表

# mysql_install_db --user=mysql

3 启动mysql服务并将mysql的root用户密码修改为123

# /etc/init.d/mysqld restart
# mysqladmin -u root password '123'

4 删除测试数据库和匿名用户

# mysql_secure_installation

5 使用数据库,并创建b2g数据库

# mysql -u root -h 127.0.0.1 -p
mysql> SHOW DATABASES;
mysql> CREATE DATABASE b2g;
mysql> SHOW DATABASES;
mysql> quit;

mysql新建用户

新建用户

mysql> CREATE USER user identified by '123456'	#新建用户名为user,密码123456。
mysql> grant all on mysql.user(#代表权限,可以访问的数据库的表,若是“*.*”,则权限极大) to 'chenlianfu'@'localhost'(#代表访问的用户和访问者的IP地址,若是'chenlianfu'@'%',表示可以用chenlianfu这个用户从任意IP地址访问数据库) identified by '123456'(这是用户名对应的密码);	#新建用户名为chenlianfu,密码123456。
mysql> flush privileges;	#刷新系统权限表。
mysql> drop user user@localhost;	#删除user用户。
mysql> set password for user=password('123456');	#修改user用户的密码为123456。
mysql> grant all privileges on db.* to user@localhost identified by '123456';	#修改用户权限。
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM user@'%';	#修改用户权限;
mysql> revoke all privileges on db.*  from  user@'192.168.1.1';	#修改用户权限;

如果mysqld服务启动不了,通过运行mysql_install_db命令来重新初始化数据库来解决。