2017-11-11 261 views
1

我正在關注this答案,以在Ubuntu 16.04上設置我的root密碼。 msql --version給了我這樣的:mysql root用戶是否總是擁有默認的所有權限?

mysql Ver 15.1 Distrib 10.0.31-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 

繼答案,當我輸入UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';我得到這個:

Query OK, 1 row affected (0.00 sec) 
Rows matched: 1 Changed: 1 Warnings: 0 

我發現,當我用同樣的密碼輸入相同的命令,它給了我這樣的:

Query OK, 0 row affected (0.00 sec) 
Rows matched: 1 Changed: 0 Warnings: 0 

我認爲這是正確的。然後,我鍵入最後兩個命令,當我鍵入mysql -uroot -p然後password我仍然得到這樣的:

ERROR 1698 (28000): Access denied for user 'root'@'localhost' 

是否有極其新秀一步我逃課?或者任何命令輸出給你更多的數據?

UPDATE

當我鍵入sudo service mysql status我得到這個:

Active: active (running) since Sáb 2017-11-11 00:44:57 BRST; 5s ago 
    Docs: man:systemd-sysv-generator(8) 
    Process: 4808 ExecStop=/etc/init.d/mysql stop (code=exited, status=0/SUCCESS) 
    Process: 5330 ExecStart=/etc/init.d/mysql start (code=exited, status=0/SUCCESS) 
    CGroup: /system.slice/mysql.service 
      ├─5358 /bin/bash /usr/bin/mysqld_safe 
      ├─5502 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-log-error --p 
      └─5503 logger -t mysqld -p daemon error 

Nov 11 00:44:56 acer mysqld[5503]: 171111 0:44:56 [Note] InnoDB: 128 rollback segment(s) are active. 
Nov 11 00:44:56 acer mysqld[5503]: 171111 0:44:56 [Note] InnoDB: Waiting for purge to start 
Nov 11 00:44:56 acer mysqld[5503]: 171111 0:44:56 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.36-82.0 started; log sequence nu 
Nov 11 00:44:56 acer mysqld[5503]: 171111 0:44:56 [Note] Plugin 'FEEDBACK' is disabled. 
Nov 11 00:44:56 acer mysqld[5503]: 171111 0:44:56 [Note] Server socket created on IP: '127.0.0.1'. 
Nov 11 00:44:56 acer mysqld[5503]: 171111 0:44:56 [Warning] 'user' entry '[email protected]' has both a password and an authentication plugin spe 
Nov 11 00:44:56 acer mysqld[5503]: 171111 0:44:56 [Note] /usr/sbin/mysqld: ready for connections. 
Nov 11 00:44:56 acer mysqld[5503]: Version: '10.0.31-MariaDB-0ubuntu0.16.04.2' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Ubuntu 16.04 
Nov 11 00:44:57 acer mysql[5330]: ...done. 
Nov 11 00:44:57 acer systemd[1]: Started LSB: Start and stop the mysql database server daemon. 

由於顯示here我看到我的日誌應該是正常的。那是對的嗎?

UPDATE

This answer爲我工作。但是尋找root權限,我結束了this question,它說「我的root用戶沒有所有權限」。這是一個立場?如果是的話,是不是root用戶應該擁有所有這些特權?這是不是,爲什麼?這是一個安全問題嗎?

+0

不要將Ubuntu的「root」與MySQL的「root」混淆。 –

回答

2

我的理解是,默認情況下,[email protected]具有完全的權限和[email protected]%(遠程連接根)不。這是一件好事......在日常數據庫使用中,您不應該使用root帳戶。

如果你需要遠程連接超級用戶權限,我建議創建一個admin帳戶,它可以做到儘可能多的。 (您仍然可以遠程訪問root帳戶。)具體的安全規定(權限管理員需要什麼)可能是一個單獨的問題 - 可能是無法回答的問題,除非您可以對您的用例。

+0

但是從我的故事我不能告訴'root @ localhost'我有充分的權限。正如你所看到的,我試圖使用'root @ localhost',但仍然不允許登錄。 – GabrielRado

+0

我不知道你做了什麼改變,但是設置MySQL通常也需要修改防火牆設置。 (如果您沒有更改端口/防火牆設置,那不是。) –

0

的MySQL 5.7.6及更高版本:

ALTER USER '根' @ 'localhost' 的IDENTIFIED BY '您的新密碼';

的MySQL 5.7.5及更早版本:

SET PASSWORD FOR '根' @ 'localhost' 的= PASSWORD( '您的新密碼');

+0

不幸的是,這並沒有奏效 – GabrielRado

+0

我編輯了我的問題來指定我的新疑問。感謝您的時間和耐心。如果你知道這個新問題,隨時編輯你的答案 – GabrielRado

相關問題