想在自己的小本上练习一下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)。
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替换为你自己的密码。重启一次,使用设置的新密码就可以进去了。