‘无法在Openvz VPS上为MySQL“root”用户设置密码

我正在尝试在运行Ubuntu 13.04 64bit的基于Openvz的VPS上安装mysql服务器,并且我在安装时不断收到此错误。 我尝试了多次,我也重新安装了操作系统,没有任何改变。 如果我在收到错误2002后尝试设置root用户,您可以在下面看到..

我试图谷歌问题,但我没有找到这样的东西,你能帮我吗?

预先感谢

root@server1:~# apt-get install mysql-server mysql-common mysql-client Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libdbd-mysql-perl libmysqlclient18 mysql-client-5.5 mysql-server-5.5 Suggested packages: tinyca mailx The following NEW packages will be installed: libdbd-mysql-perl libmysqlclient18 mysql-client mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/18.0 MB of archives. After this operation, 66.9 MB of additional disk space will be used. Do you want to continue [Y/n]? y Preconfiguring packages ... Package configuration ────────────────────────────────────────────────────────────────────────────── ┌──────────────────────Configuring mysql-server-5.5─────────────────────────┐ │ While not mandatory, it is highly recommended that you set a password │ │ for the MySQL administrative "root" user. │ │ │ │ If this field is left blank, the password will not be changed. │ │ │ │ New password for the MySQL "root" user: │ │ ┌───────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ ├─└───────────────────────────────────────────────────────────────────────┘─┤ │  │ └───────────────────────────────────────────────────────────────────────────┘ Package configuration ────────────────────────────────────────────────────────────────────────────── ┌────────Configuring mysql-server-5.5───────────┐ │ │ │ │ │ Repeat password for the MySQL "root" user: │ │ ┌───────────────────────────────────────────┐ │ │ │ │ │ ├─└───────────────────────────────────────────┘─┤ │  │ └───────────────────────────────────────────────┘ Selecting previously unselected package mysql-common. (Reading database ... 41054 files and directories currently installed.) Unpacking mysql-common (from .../mysql-common_5.5.32-0ubuntu0.13.04.1_all.deb) ... Selecting previously unselected package libmysqlclient18:amd64. Unpacking libmysqlclient18:amd64 (from .../libmysqlclient18_5.5.32-0ubuntu0.13.04.1_amd64.deb) ... Selecting previously unselected package libdbd-mysql-perl. Unpacking libdbd-mysql-perl (from .../libdbd-mysql-perl_4.021-1_amd64.deb) ... Selecting previously unselected package mysql-client-5.5. Unpacking mysql-client-5.5 (from .../mysql-client-5.5_5.5.32-0ubuntu0.13.04.1_amd64.deb) ... Processing triggers for man-db ... Setting up mysql-common (5.5.32-0ubuntu0.13.04.1) ... Selecting previously unselected package mysql-server-5.5. (Reading database ... 41140 files and directories currently installed.) Unpacking mysql-server-5.5 (from .../mysql-server-5.5_5.5.32-0ubuntu0.13.04.1_amd64.deb) ... Selecting previously unselected package mysql-client. Unpacking mysql-client (from .../mysql-client_5.5.32-0ubuntu0.13.04.1_all.deb) ... Selecting previously unselected package mysql-server. Unpacking mysql-server (from .../mysql-server_5.5.32-0ubuntu0.13.04.1_all.deb) ... Processing triggers for man-db ... Setting up libmysqlclient18:amd64 (5.5.32-0ubuntu0.13.04.1) ... Setting up libdbd-mysql-perl (4.021-1) ... Setting up mysql-client-5.5 (5.5.32-0ubuntu0.13.04.1) ... Setting up mysql-server-5.5 (5.5.32-0ubuntu0.13.04.1) ... invoke-rc.d: policy-rc.d denied execution of stop. Package configuration ────────────────────────────────────────────────────────────────────────────── ┌───────────────────────Configuring mysql-server-5.5─────────────────────────┐ │ Unable to set password for the MySQL "root" user │ │ │ │ An error occurred while setting the password for the MySQL │ │ administrative user. This may have happened because the account already │ │ has a password, or because of a communication problem with the MySQL │ │ server. │ │ │ │ You should check the account's password after the package installation. │ │ │ │ Please read the /usr/share/doc/mysql-server-5.5/README.Debian file for │ │ more information. │ │ │ │ │ ├────────────────────────────────────────────────────────────────────────────┤ │  │ └────────────────────────────────────────────────────────────────────────────┘ invoke-rc.d: policy-rc.d denied execution of start. Setting up mysql-client (5.5.32-0ubuntu0.13.04.1) ... Setting up mysql-server (5.5.32-0ubuntu0.13.04.1) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place root@server1:~# sudo mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we'll need the current password for the root user. If you've just installed MySQL, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) Enter current password for root (enter for none): ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) Enter current password for root (enter for none): 

我有完全相同的问题,结果是缺乏内存问题。 在主机上运行此脚本为我修复了它:

 #!/bin/bash cid=104 vzctl set ${cid} --vmguarpages 1024M --save vzctl set ${cid} --oomguarpages 1024M --save vzctl set ${cid} --privvmpages 1024M:1024M --save 

随意将1024更改为您希望容器具有的任何内存量。 您还需要将104更改为容器的ID。

使用以下命令更改mysql服务器的root密码

sudo dpkg-reconfigure mysql-server-5.5

首先检查你的mysql服务器是否实际滚动。 作为root运行:

 service mysql restart 

如果没有出现错误继续读取,否则使用apt-get install --reinstall mysql-server重新安装mysql服务器apt-get install --reinstall mysql-server

接下来检查mysql配置文件/etc/mysql/my.cnf并查找以下参数:

 user = mysql ... bind-address = 127.0.0.1 

如果需要更改它们重新启动服务器,然后尝试连接以下之一:

 mysql -u root mysql -u root -p mysql -u root -p -h localhost mysql -u root -p -h 127.0.0.1 

如果您仍然无法登录,请尝试更改/etc/apparmor.d/usr.sbin.mysqld如下所示:

搜索

 /var/run/mysqld/mysqld.pid w, /var/run/mysqld/mysqld.sock w, 

用。。。来代替

 /{,var/}run/mysqld/mysqld.pid w, /{,var/}run/mysqld/mysqld.sock w, 

使用service apparmor restart重新启动apparmor服务,然后重试连接到mysql。 如果仍然没有运气,请停止mysql服务器并在没有授权表的情况下重新运行它:

 sudo service mysql stop sudo mysqld --skip-grant-tables & 

现在你应该能够在没有密码的情况下登录mysql( mysql -u root )。 看看你的用户表上发生了什么:

 select Host, User, Password from mysql.user; 

您应该有4个root用户,检查主机名是否正确以及所有用户都有密码。 尝试使用新密码重置密码:

 update mysql.user set Password=PASSWORD('YOUR-PASSWORD'); flush privileges; exit; 

现在sudo killall mysqldsudo service mysql restart并重试连接新凭据。

我无法解释为什么会发生这种情况,但是为了可能使sudo mysql_secure_installation运行而尝试失败后设置MySQL的root密码的解决方法是运行以下命令:

 mysqladmin -u root -p '' password '' 

* =新密码