我按照this的答案在Ubuntu16.04上设置我的根密码。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为我工作。但是为了寻找根权限,我最终使用了this question,它说“我的根用户并不拥有所有特权”。这是一个标准吗?如果是,root用户不应该拥有所有这些特权吗?不是吗,为什么?这是个安全问题吗?
发布于 2017-11-11 04:05:17
我的理解是,默认情况下,root@localhost具有完全的权限,而root@% (远程连接作为根)没有。在日常数据库使用中,不应该使用根帐户。
如果您需要使用超级用户权限进行远程连接,我建议您创建一个admin帐户,它可以完成所需的任务。(您仍然可以远程进入和访问根帐户。)特定的安全条款(管理员需要什么权限)可能是一个单独的问题--可能是一个无法回答的问题,除非您可以非常具体地了解您的用例。
发布于 2017-11-11 02:36:10
MySQL 5.7.6及更高版本:
更改用户“root”@“localhost”,由“您的新密码”标识;
MySQL 5.7.5及更高版本:
设置密码为'root'@'localhost‘=密码(’您的新密码‘);
https://stackoverflow.com/questions/47233708
复制相似问题