MySQL登陆问题总结

来源:互联网 发布:在网络上遇到诈骗 编辑:程序博客网 时间:2024/06/03 12:15

想在自己的小本上练习一下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 -pEnter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2)atom@openSuSE:~> ps aux | grep mysqlatom      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.socketatom      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 statusredirecting to systemctlmysql.service - LSB: Start the MySQL database serverLoaded: loaded (/etc/init.d/mysql)Active: inactive (dead)CGroup: name=systemd:/system/mysql.service
那就再启动一次,观察mysql的状态。
atom@openSuSE:~> sudo /etc/init.d/mysql restartredirecting to systemctlatom@openSuSE:~> ps aux | grep mysqlatom      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.socketroot     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/mysqlmysql    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=3306atom     22359  0.0  0.0   8276   872 pts/0    S+   09:33   0:00 grep --color=auto mysqlatom@openSuSE:~> /etc/init.d/mysql statusredirecting to systemctlmysql.service - LSB: Start the MySQL database serverLoaded: loaded (/etc/init.d/mysql)Active: active (running) since Mon, 18 Jun 2012 09:32:43 +0800; 3min 32s agoProcess: 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 stoproot's password:redirecting to systemctlatom@openSuSE:~> sudo mysqld_safe --user=mysql --skip-grant-tables --skip-networking &[1] 22638atom@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/mysqlatom@openSuSE:~> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('xxxx') where USER='root';mysql> FLUSH PRIVILEGES;mysql> quit
把PASSWORD('xxxx')中xxxx替换为你自己的密码。重启一次,使用设置的新密码就可以进去了。