use*_*667 13 server mysql 16.04
在我的 ubuntu 16.04 服务器中,我尝试通过以下命令安装 mysql
sudo apt-get install mysql-server
Run Code Online (Sandbox Code Playgroud)
每次它都卡在消息中时:
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Renaming removed key_buffer and myisam-recover options (if present)
Checking if update is needed.
This installation of MySQL is already upgraded to 5.7.16, use --force if you still need to run mysql_upgrade
Run Code Online (Sandbox Code Playgroud)
我必须按Ctrl+z才能停止它。我已经检查了日志文件/var/log/mysql/error.log
,它的最后 10 行显示了这个结果:
2017-01-18T09:07:30.329930Z 0 [Note] InnoDB: Buffer pool(s) load completed at 170118 9:07:30
2017-01-18T09:07:30.335086Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
2017-01-18T09:07:30.335137Z 0 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
2017-01-18T09:07:30.335157Z 0 [Note] - '127.0.0.1' resolves to '127.0.0.1';
2017-01-18T09:07:30.335216Z 0 [Note] Server socket created on IP: '127.0.0.1'.
2017-01-18T09:07:30.349491Z 0 [Note] Event Scheduler: Loaded 1 event
2017-01-18T09:07:30.349749Z 0 [Note] Execution of init_file '/var/lib/mysql-files/tmp.sJ5rMac6mK' started.
2017-01-18T09:07:30.350543Z 1 [ERROR] 1396 Operation ALTER USER failed for 'root'@'localhost'
2017-01-18T09:07:30.350737Z 0 [Note] Execution of init_file '/var/lib/mysql-files/tmp.sJ5rMac6mK' ended.
2017-01-18T09:07:30.350864Z 0 [Note] mysqld: ready for connections.
Run Code Online (Sandbox Code Playgroud)
重新启动后,我通过mysql -u root
. 在 mysql 中,我无法进行任何操作,无法创建新用户或修改权限。我只能浏览默认数据库
当我输入时,show grants
它显示了以下结果
+--------------------------------------+
| Grants for @localhost |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+
Run Code Online (Sandbox Code Playgroud)
这很奇怪。为了确保这一点,我检查了其中给我的user_privileges
表格information_schema
:
+----------------+---------------+----------------+--------------+
| GRANTEE | TABLE_CATALOG | PRIVILEGE_TYPE | IS_GRANTABLE |
+----------------+---------------+----------------+--------------+
| ''@'localhost' | def | USAGE | NO |
+----------------+---------------+----------------+--------------+
Run Code Online (Sandbox Code Playgroud)
如何启用 root 访问权限来创建、更新?
小智 39
一个简单的解决方案是sudo killall mysqld
在 apt-get 操作运行时。
apt 操作在此之后继续运行而没有任何错误(!)
来源:https : //bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1596815
use*_*667 10
最后我得到了解决方法。这是我所做的
sudo apt purge mysql*
/etc/mysql
文件夹/var/lib/mysql, /var/lib/mysql-files, /var/lib/mysql-kering
文件夹。sudo apt-get install mysql-server
这次mysql安装成功,没有卡住。安装时它提示我输入 root 密码,我提供了一个。安装后,我使用提供的密码以 root 登录。这次创建新用户,更新一切正常。现在,这是结果show grants
:
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
虽然我仍然不知道为什么第一次它不起作用。我尝试只删除 cnf 文件,但这没有用。当我删除里面的所有 mysql 文件夹时,/var/lib
它就起作用了。所以我猜/var/lib/msyql
目录中有一些文件阻止创建任何新用户(甚至是 root 用户)。
归档时间: |
|
查看次数: |
17280 次 |
最近记录: |