/* */ IDENTIFIED BY ‘MyNewPass4!‘;
或者
mysql> set password for [email protected]=password(‘MyNewPass4!‘);
12 添加遠程登錄用戶
默認只允許root帳戶在本地登錄,如果要在其它機器上連接mysql,必須修改root允許遠程連接,或者添加一個允許遠程連接的帳戶,為了安全起見,我添加一個新的帳戶:
mysql> grant all privileges on *.* to [email protected]%‘ identified by ‘mypassword‘ with grant option;
mysql> flush privileges;
grant all privileges on *.* to 創建的用戶名 @"%" identified by "密碼";
flush privileges; * 刷新剛才的內容*
格式:grant 權限 on 數據庫教程名.表名 to [email protected]
/* */ identified by "用戶密碼";
@ 後面是訪問MySQL的客戶端ip地址(或是 主機名) % 代表任意的客戶端,如果填寫 localhost 為本地訪問(那此用戶就不能遠程訪問該mysql數據庫了)。
同時也可以為現有的用戶設置是否具有遠程訪問權限。如下:
use mysql;
update db set host = ‘%‘ where user = ‘用戶名‘; (如果寫成 host=localhost 那此用戶就不具有遠程訪問權限)
flush privileges;
註:flush privileges 命令本質上的作用是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存裏。MySQL用戶數據和權限有修改後,希望在"不重啟MySQL服務"的情況下直接生效,那麽就需要執行這個命令。通常是在修改ROOT帳號的設置後,怕重啟後無法再登錄進來,那麽直接flush之後就可以看權限設置是否生效。而不必冒太大風險。
13 使用nativecat遠程連接數據?
提示:2003 -Can‘t connect to MySQL server on ‘10.0.0.18‘(10038)
驗證 telnet 192.168.237.102 3306 在端口 3306: 連接失敗
再到虛擬機上確認 netstat -anp
說明端口不通
14 開通3306端口
下面記錄如何使用firewalld開放Linux端口:
開啟端口?
[[email protected]
/* */ ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
命令含義:
–zone #作用域
–add-port=3306/tcp #添加端口,格式為:端口/通訊協議
–permanent #永久生效,沒有此參數重啟後失效
重啟防火墻?
[[email protected] ~]# firewall-cmd --reload
常見問題處理:
中途一些操作導致mysql.sock文件丟失
mysql.sock是一個臨時文件,在mysql啟動時會自動生成
可以簡單地通過重啟服務器重新創建得到它,前提是你的mysql服務可以正常重新啟動
錯誤代碼是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是無法給遠程連接的用戶權限問題
重新授權:
mysql> grant all privileges on *.* to [email protected]%‘ identified by ‘mypassword‘ with grant option;
mysql> flush privileges;