MySQL登陆问题总结
想在自己的小本上练习一下MySQL,结果登陆就有问题,折腾了半个小时终于搞定,也把这几个常见的问题总结下来和
大家分享。笔者的系统是OpenSuSE,其他系统的解决方式类似,供大家参考。
首先,登陆MySQL,提示ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2),ps后感觉mysqld是启动的呀
[plain]
atom@openSuSE:~> mysql -u root -h localhost -p
Enter pass
word:
www.atcpu.com 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)。。。
[plain]
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的状态。
[plain]
atom@openSuSE:~> sudo /etc/init.d/mysql restart
redirecting to systemctl
www.atcpu.com 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)
www.atcpu.com 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 pass
word: YES)。
在网上查到一种解决方案,供大家参考。首先,关闭mysqld服务,然后执行下面两条命令,总算可以进去了,先改密码~
[plain]
atom@openSuSE:~> sudo /etc/init.d/mysql stop
root's pass
word:
www.atcpu.com 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
[sql]
mysql> UPDATE user SET Pass
word=PASS
word('xxxx') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
把PASS
word('xxxx')中xxxx替换为你自己的密码。重启一次,使用设置的新密码就可以进去了。
作者 nevasun