MySQL登陆问题总结

想在自己的小本上练习一下MySQL,结果登陆就有问题难过,折腾了半个小时终于搞定,也把这几个常见的问题总结下来和大家分享。笔者的系统是OpenSuSE,其他系统的解决方式类似,供大家参考。

首先,登陆MySQL,提示ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2),ps后感觉mysqld是启动的呀

atom@openSuSE:~> mysql -u root -h localhost -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2)
atom@openSuSE:~> ps aux | grep mysql
atom      1842  0.0  1.0 265564 41296 ?        Sl   09:15   0:00 /usr/sbin/mysqld --defaults-file=/home/atom/.local/share/akonadi//mysql.conf --datadir=/home/atom/.local/share/akonadi/db_data/ --socket=/home/atom/.local/share/akonadi/socket-openSuSE.site/mysql.socket
atom      2788  0.0  0.0   8276   876 pts/0    S+   09:25   0:00 grep --color=auto mysql
但是,查看mysqld的状态,发现Active: inactive (dead)。。。
atom@openSuSE:~> /etc/init.d/mysql status
redirecting to systemctl
mysql.service - LSB: Start the MySQL database server
Loaded: loaded (/etc/init.d/mysql)
Active: inactive (dead)
CGroup: name=systemd:/system/mysql.service
那就再启动一次,观察mysql的状态。
atom@openSuSE:~> sudo /etc/init.d/mysql restart
redirecting to systemctl
atom@openSuSE:~> ps aux | grep mysql
atom      1842  0.0  1.0 265564 41296 ?        Sl   09:15   0:00 /usr/sbin/mysqld --defaults-file=/home/atom/.local/share/akonadi//mysql.conf --datadir=/home/atom/.local/share/akonadi/db_data/ --socket=/home/atom/.local/share/akonadi/socket-openSuSE.site/mysql.socket
root     22000  0.0  0.0  11536  1644 ?        S    09:32   0:00 /bin/sh /usr/bin/mysqld_safe --mysqld=mysqld --user=mysql --pid-file=/var/run/mysql/mysqld.pid --socket=/var/run/mysql/mysql.sock --datadir=/var/lib/mysql
mysql    22322  0.2  1.0 721584 42540 ?        Sl   09:32   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysql/mysqld.log --pid-file=/var/run/mysql/mysqld.pid --socket=/var/run/mysql/mysql.sock --port=3306
atom     22359  0.0  0.0   8276   872 pts/0    S+   09:33   0:00 grep --color=auto mysql
atom@openSuSE:~> /etc/init.d/mysql status
redirecting to systemctl
mysql.service - LSB: Start the MySQL database server
Loaded: loaded (/etc/init.d/mysql)
Active: active (running) since Mon, 18 Jun 2012 09:32:43 +0800; 3min 32s ago
Process: 21865 ExecStart=/etc/init.d/mysql start (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/mysql.service
├ 22000 /bin/sh /usr/bin/mysqld_safe --mysqld=mysqld --user=mysql --pid-file=/var/run/mysql/mysqld.pid --socket=...
└ 22322 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mys...
这下总算正常了,再尝试登陆又给出错误提示:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)。
在网上查到一种解决方案,供大家参考。首先,关闭mysqld服务,然后执行下面两条命令,总算可以进去了,先改密码~

atom@openSuSE:~> sudo /etc/init.d/mysql stop
root's password:
redirecting to systemctl
atom@openSuSE:~> sudo mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
[1] 22638
atom@openSuSE:~> 120618 09:40:32 mysqld_safe Logging to '/var/log/mysql/mysqld.log'.
120618 09:40:32 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

atom@openSuSE:~> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('xxxx') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
把PASSWORD('xxxx')中xxxx替换为你自己的密码。重启一次,使用设置的新密码就可以进去了。

你可能感兴趣的:(mysql,socket,server,user,database,logging)