mysql root用户是否总是拥有默认的所有权限?
我正在关注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
用户应该拥有所有这些特权?这是不是,为什么?这是一个安全问题吗?
我的理解是,默认情况下,[email protected]
具有完全的权限和[email protected]%
(远程连接根)不。这是一件好事......在日常数据库使用中,您不应该使用root帐户。
如果你需要远程连接超级用户权限,我建议创建一个admin
帐户,它可以做到尽可能多的。 (您仍然可以远程访问root帐户。)具体的安全规定(权限管理员需要什么)可能是一个单独的问题 - 可能是无法回答的问题,除非您可以对您的用例。
但是从我的故事我不能告诉'root @ localhost'我有充分的权限。正如你所看到的,我试图使用'root @ localhost',但仍然不允许登录。 – GabrielRado
我不知道你做了什么改变,但是设置MySQL通常也需要修改防火墙设置。 (如果您没有更改端口/防火墙设置,那不是。) –
的MySQL 5.7.6及更高版本:
ALTER USER '根' @ 'localhost' 的IDENTIFIED BY '您的新密码';
的MySQL 5.7.5及更早版本:
SET PASSWORD FOR '根' @ 'localhost' 的= PASSWORD( '您的新密码');
不幸的是,这并没有奏效 – GabrielRado
我编辑了我的问题来指定我的新疑问。感谢您的时间和耐心。如果你知道这个新问题,随时编辑你的答案 – GabrielRado
不要将Ubuntu的“root”与MySQL的“root”混淆。 –