linux伺服器A遠端連線伺服器B的mysql及1045錯誤
伺服器A上已經存在定時執行備份mysql的指令碼,最近伺服器B又新起了一個專案,也需要備份資料。圖方便,打算直接都在A的指令碼中執行。
指令碼如下:
dateStr=`date +"%y%m%d-%H%M%S"`
if [ ! -z "${1}" ]; then
mkdir -p /mnt/upload/deployBackup/${dateStr}
......
echo 備份135資料庫
/usr/bin/mysqldump -p3306 -h***.**.**.135 -uroot -pabc123 --databases -B --flush-logs -c -a --single-transaction --extended-insert=false --default-character-set utf8 --hex-blob abccnew | gzip > /mnt/upload/deployBackup/${dateStr}/yljkcnew135-${dateStr}.sql.gz
......
問題:
遠端連線135上的mysq時報:(1045錯誤)Access denied for user 'root'@'localhost' (using password yes);l
原因在135上的mysql沒有授予遠端連線的許可權。
解決辦法:
這樣所有的ip可以以使用者名稱root密碼password遠端訪問該機器上的MySql.mysql> use mysql;
Database changed
mysql> grant all privileges on *.* to [email protected]'%' identified by "password";
Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| % | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)