mysql root用户是否总是默认拥有所有权限?

时间:2017-11-11 02:18:34

标签: mysql ubuntu-16.04

我正在关注this在Ubuntu 16.04上设置我的root密码。 msql --version给了我这个:

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'

我有没有跳过最新秀的步骤?或者输出更多数据的任何命令?

更新

当我输入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 'root@localhost' 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我看到我的日志应该是正常的。这是对的吗?

更新

This answer为我工作。但是在查找root权限时,我最终在this question上说“我的root用户没有所有权限”。这是一个标准吗?如果是,那么root用户是否应该拥有所有这些权限?是不是,为什么?这是一个安全的问题吗?

2 个答案:

答案 0 :(得分:2)

我的理解是,默认情况下,root@localhost具有完全权限,root@%(以root身份远程连接)不具备。这是一件好事......在日常数据库使用中,您不应该使用root帐户。

如果您需要使用超级用户权限远程连接,我建议您创建一个admin帐户,该帐户可以根据需要进行操作。 (您仍然可以远程访问和访问root帐户。)具体的安全规定(管理员需要的权利)可能是一个单独的问题 - 可能是一个无法解决的问题,除非您可以非常具体地了解您的用例。

答案 1 :(得分:0)

MySQL 5.7.6及更高版本:

  

ALTER USER'root'@'localhost'通过'您的新密码'识别;

MySQL 5.7.5及更早版本:

  

为'root'设置密码@'localhost'=密码('你的新密码');