Mysql连接失败总结

来源:互联网 发布:跨域 post Js 编辑:程序博客网 时间:2024/05/02 18:32

linux下

 

方法一:


# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>

mysql>


方法二:


直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:
# mysql -udebian-sys-maint -p
Enter password: <输入[client]节的密码>
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

# mysql -uroot -p
Enter password: <输入新设的密码newpassword>

mysql>


方法三:

# mysql -uroot -p
Enter password: <输入/etc/mysql/debian.cnf文件中[client]节提供的密码>

、、、、、、、、、、、、、、、、、、、、、、、

window 下
命令行下输入:
>cd E:/mysql/bin
>mysqladmin -u root password 你的密码
>mysql -u root -p
Enter password: 你的密码
便可以

、、、、、、、、、、、、、、、、、
找到了根本原因,在此凉一下:

导致此问题的根源在:因为给mysql的root设置了密码,而不是最初安装好时的密码为空,所以使用

mysqladmin version这样子不行了,必须这样子:mysqladmin -uroot -p version,回车后按照提示要求输入

root密码即可成功运行命令。

第一种方法其实就是在不知道root密码的情况下的一种解决办法,那样子启动不用密码即可进mysql

里面并进行root密码的修改,解决忘记了root密码的问题。


输入命令“mysqladmin -u root password 你的密码”作用是修改root用户的密码,这条命令能够不经

提示输入原密码而成功执行,也说明了原密码是空。之后使用修改后的密码自然能够成功登录。

 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。怎么更改密码?
首先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的,所以一般用户无法更改密码

,除非请求管理员。   

方法一
  使用phpmyadmin,这是最简单的了,修改mysql库的user表,
  不过别忘了使用PASSWORD函数。
  方法二
  使用mysqladmin,这是前面声明的一个特例。
  mysqladmin -u root -p password mypasswd
  输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
  把命令里的root改为你的用户名,你就可以改你自己的密码了。
  当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,
  那么这种方法就是无效的。
  而且mysqladmin无法把密码清空。
  下面的方法都在mysql提示符下使用,且必须有mysql的root权限:

  方法三
  mysql> INSERT INTO mysql.user (Host,User,Password)
  VALUES('%','jeffrey',PASSWORD('biscuit'));
  mysql> FLUSH PRIVILEGES
  确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。
  在《mysql中文参考手册》里有这个例子,所以我也就写出来了。
  注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。
  方法四
  和方法三一样,只是使用了REPLACE语句
  mysql> REPLACE INTO mysql.user (Host,User,Password)
  VALUES('%','jeffrey',PASSWORD('biscuit'));
  mysql> FLUSH PRIVILEGES
  方法五
  使用SET PASSWORD语句,
  mysql> SET PASSWORD FOR " = PASSWORD('biscuit');
  拟也必须使用PASSWORD()函数,
  但是不需要使用FLUSH PRIVILEGES。
  方法六
  使用GRANT ... IDENTIFIED BY语句
  mysql> GRANT USAGE ON *.* TO " IDENTIFIED BY 'biscuit';
  这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。
  注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。
  MySQL 忘记口令的解决办法
  如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
  启动 MySQL :bin/safe_mysqld --skip-grant-tables &
  就可以不需要密码就进入 MySQL 了。
  然后就是
  >use mysql
  >update user set password=password("new_pass") where user="root";
  >flush privileges;
  重新杀 MySQL ,用正常方法启动 MySQL 。

原创粉丝点击