重庆幸运农场中奖金额|重庆幸运农场官网
MyException - 我的異常網
當前位置:我的異常網» MySQL » 盛網攻城師——mysql基本遠程異常處理方法

盛網攻城師——mysql基本遠程異常處理方法

www.h0f1.com  網友分享于:2018-06-06  瀏覽:0次
盛網攻城師——mysql基本遠程錯誤處理方法
???mysql是現在很常用的軟件,以下是我收集到的一些關于遠程失敗時候的出來辦法

歡迎加我聯系2247597368

## 1. ERROR 2003(hy000):can't connect to mysql server on 'localhost' (10061)

原因是MySQL考慮到安全因素,默認配置只讓從本地登錄

打開 /etc/mysql/my.cnf 文件,找到 bind-address = 127.0.0.1 修改為 bind-address = 0.0.0.0

重啟`mysql : sudo /etc/init.d/mysql restart`

再次連接,發生錯誤 1045

## 2. ERROR 1045 (28000): Access denied for user 'root'@'x.x.x.x' (using password: NO)

- 原因是沒有給登錄用戶名設置遠程主機登錄的權限。還有種可能是你需要重設下密碼....可能是授權操作引起這種后遺癥..

- 在本地用 root 登錄:

    ```

      # mysql -u root -p

    ```

    修改 MySQL 數據庫中 user 表中 對應用戶名的 Host 字段,將 localhost 改為 `%`

    ```

      mysql> use mysql;

      mysql> update user set Host = '%' where User = 'username';

    ```

## 3. 取回ROOT密碼并設置遠程登錄

  - 重設 ROOT密碼

    ```

      # mysqld_safe --skip-grant-tables &

      # mysql -u root mysql

      mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';

      mysql> FLUSH PRIVILEGES;

    ```

  - 設置 ROOT 遠程連接 

    ```

      mysql> update user set host = '%'   where user='root';

    ```

  - Kill進程,重啟 mysqld

    查看進程`PS -A | grep mysql `,可看到MYSQLD_SAFE與MYSQL進程,此時MYSQL可正常使用,不過查看參數,可看到`--skip-grant-tab`

輸入 `kill -9 [pid]` 關閉進程

## 4. ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

如果執行update語句時出現ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 錯誤,說明有多個ROOT用戶紀錄在USER表中了.



`mysql> select host from user where user = 'root';`



查看一下host是否已經有了`%`這個值,有了就可以了.



`mysql> select host,user from user where user='root';`



```

+-----------------------+------+

| host                  | user |

+-----------------------+------+

| %                     | root |

| 127.0.0.1             | root |

| ::1                   | root |

| localhost.localdomain | root |

+-----------------------+------+

```

然后用ROOT用戶登錄更改用戶賬戶的遠程連接權限時.出現提示:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。

##5. ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'



是因為mysql數據庫的user表里,存在用戶名為空的賬戶即匿名賬戶,導致登錄的時候是雖然用的是root,但實際是匿名登錄的,通過錯誤提示里的''@'localhost'可以看出來,于是解決辦法見

先關閉MYSQL進程..

然后



   `# mysqld_safe --skip-grant-table`



接著輸入



  ```

   mysql -u root mysql

   mysql> delete from user where USER='';

   mysql> FLUSH PRIVILEGES;

  ```

如果出現  Starting demo from .. 后..先輸入其它命令,再用mysql -u root mysql .它又會出現這個錯誤了.

然后KILL掉MYSQL進程,..重啟正常的進程..

設置用戶遠程主機連接權限



  ```

    mysql> update user set host = '%'  where user='tester';

    mysql> FLUSH PRIVILEGES;

  ```

## 6. 設置用戶與庫的權限

但是在實際連接中,雖然可以連接,但是去沒有所在庫的權限,下面設置權限



  ```

    mysql> grant all privileges on tester.* to [email protected]'%' identified by '1234';

    mysql> FLUSH PRIVILEGES;

  ```

百分號兩邊要有單引號,否則語法錯誤

然后連接時,竟然提示1045 錯誤了,重設下密碼試下.

  ```

    mysql> update mysql.user set password=password('XXX') where User="tester"

    mysql> flush privileges;

文章評論

軟件開發程序錯誤異常ExceptionCopyright © 2009-2015 MyException 版權所有
重庆幸运农场中奖金额