Solve the Problem of mysql "Access denied for user 'root' @ 'IP address'". In MYSQL, remote software is used to log on to the server, sometimes the following occurs: access denied for user 'root' @ 'localhost' www.2cto.com this problem occurs mainly because the permission configuration is not correctly configured. The solution is as follows: When you log on to MYSQL using a Linux/unix tty, mysql-u root-p will prompt you to enter the password, enter the correct password, and then log on normally. Then, at the prompt, run the command: show grants; the following root permission is displayed: grant all privileges on *. * TO 'root' @ 'localhost' identified by password '565491d704013245 'with grant option at this time, pay attention TO the "@" after which localhost indicates local login. At this time, if you use the remote login software to log on, an error will be prompted: Access denied for user 'root' @ 'IP address '.. The IP address is the IP address of your remote machine. That is, the server tells you that it is rejected when you log on with an "ip address", because the MYSQL permission settings do not grant you the permission to log on to your IP address. Because the show grants command result just now has already been told, only local login is allowed. The solution is as follows: at this time, you can try to connect with a blank password. Or you can enter the server on the tty or pts console and run the following command: grant all privileges on *. * to 'root' @ '%' with grant option; this means that the root user can log on to the MYSQL server on all machines (with all permissions ). After executing this command, log on to the client and enter the password. Grant all privileges 1. Change the table. It may be that your account is not allowed to log on remotely, but only on localhost. At this time, you only need to log on to mysql on the localhost computer and change the "host" entry in the "user" table in the "mysql" database, from "localhost" to "%" SQL code 1. mysql-u root-pvmwaremysql> use mysql; 2. mysql> update user set host = '%' where user = 'root'; 3. mysql> select host, user from user; 2. authorization method. For example, if you want myuser to use mypassword to connect to the mysql server from any host. SQL code 1. grant all privileges on *. * TO 'myuser' @ '%' identified by 'mypassword' with grant option; 2. flush privileges; if you want to allow myuser to connect to the mysql server from a host with ip address 192.168.1.6, and use mypassword as the password SQL code 1. grant all privileges on *. * TO 'myuser' @ '192. 168.1.3 'identified BY2. 'mypassword' with grant option; 3. flush privileges; grant all privileges on *. * TO 'myuser' @ '192. 168.1.3 'identified BY 'mypassword' WITH GRAN T option; flush privileges; if you want to allow myuser to connect to the dk database of the mysql server from a host with ip address 192.168.1.6, and use mypassword as the password SQL code 1. grant all privileges on dk. * TO 'myuser' @ '192. 168.1.3 'identified BY2. 'mypassword' with grant option; 3. flush privileges; grant all privileges on dk. * TO 'myuser' @ '192. 168.1.3 'identified BY 'mypassword' with grant option; flush privileges; note that the authorization must be flush privileges; otherwise, the authorization cannot take effect immediately. Another method. run: 1. d on the machine where mysql is installed: \ mysql \ bin \> mysql-h localhost-u root // enter MySQL Server 2, mysql> grant all privileges on *. * TO 'root' @ '%' with grant option // GRANT data access permissions TO any host. 3. mysql> flush privileges // The modification takes effect. 4. mysql> EXIT // EXIT MySQL. the server can log on to any other host as the root user!