2017-11-11 115 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

相关问题