呼叫遠端 mysql 資料庫
一直來都是使用本機 mysql 資料庫,所以在呼叫時 php 都是,mysql_connect ('localhost', 'dbuser','userpassword')
在 mysql 內的使用者設定也是 grant all on db.* to dbuser@localhost identified by 'userpassword' ;
一直沒有去深究 dbuser@localhost 是什麼意思 ,今天突然有需要遠端呼叫 mysql 時,才知道,原來 localhost 指的是呼叫機器的主機名 或 ip 位址 , 可以在呼叫主機上用 => mysql -h 資料庫主機 -u root -p 密碼,顯示的錯誤訊息是 root@ip 或 root@主機名 , 自錯誤訊息來設定 => grant all on db.* to dbuser@ip identified by 'userpassword' 或 grant all on db.* to dbuser@主機名 identified by 'userpassword' ; 就可以了
例如:mysql資料庫主機名 mysql.com ,呼叫主機名 php.com 或 ip 11.12.13.14
若在呼叫主機下指令如下 : mysql -h mysql.com -u root -p 密碼 ==> 顯示 ERROR ....Access denied for user 'root'@'11.12.13.14' , 那麼只要在 mysql 主機的 mysql下,建一個 db 的使用者,指令如下 grant all on db.* to dbuser@11.12.13.14 identified by 'userpassword' , 然後在呼叫主機的 php 指令 mysql_connect ('mysql.com', 'dbuser','userpassword') 就可以了.
這是剛剛測試出來的,不知有沒有更好的方法
迴響
我只是愛你的有趣博客
我想說,你真的幫助我理解的主題 ???? mysql ??? | ??