如果 root 帳號無法對應資料庫權限
登入之後會無法選擇資料庫
此時需從本機端進入作修改
可以參考以下步驟來設定
先將 mysqld 的服務關掉
若是在 Unix 下就用 root 輸入
# killall mysqld
若是在 Windows 下則用 Administrator 開啟工作管理員
將 mysqld-nt.exe 服務停止
接下來再輸入
# mysqld_safe --skip-grant-tables &
Windows 下則是於命令提示字元輸入
> mysqld-nt -u root --skip-grant-tables &
這個指令只有在本機端可以使用
他會繞過帳號權限與密碼認證
你可以對資料庫做任何事
# mysql -u root
下面是進到 mysql> 的命令列執行
設定 MySQL Server 的 root 帳號權限
mysql> mysqladmin -u root password new_password
-u: 使用者名稱
-h: 主機名稱,沒寫就是代表 localhost
password 後面加上密碼
設定使用者權限
mysql> Grant All Privileges On *.* To root@localhost Identified By 'password' With Grant Option;
Grant All Privileges : 代表將所有權限授權給
On *.* : 代表在那裡,第一個*為資料庫名稱,第二個星為資料表名稱,*.*為全部授權的意思
To root@localhost : 代表給 localhost 上的 root 這個人
Identified By ‘password’ : 在此輸入密碼
With Grant Option; : 表示這個使用者可以再 Grant 權限給其它使用者
在使用 Grant 指令時,每個指令的第一個字要大寫
這樣就完成權限設定的動作了
介紹另一種修改密碼的方式
mysql> use mysql;
mysql> UPDATE user SET password=password('new password') where user='root';
mysql> FLUSH PRIVILEGES;
這樣就完成修改囉
最後要來談的是安全性的議題
用 MySQL 來作資料庫的時候
通常直覺都是會用 root 作最高權限的管理員
也容易成為駭客攻擊 try 的第一個目標
因此我是比較建議 把 root 的權限全部關掉
或是只留一個 Select 作查尋
並另外開設一個新的管理員帳號
帳號換成自己記得住的來用
密碼也要定期更換
這樣會比較安全一點
-------------------------------------------------
报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost
grant all privileges on *.* to 'root'@'%' identified by 'Zjw11763' with grant option;
mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));
//刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为:phplamp 密码为:1234 的用户。
然后登录一下。