mysql常见问题

145 阅读2分钟

这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战

mysql的常见问题

1、密码错误或忘记

开始-运行 输入“mysql -uroot -pmyadmin”后出现以下错误:

“Access denied for user 'root'@'localhost' (using password:YES)”

解决方案:

1、打开MySQL目录下的my.ini文件(mysql的配置文件是my.cnf),在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。

2、重启MySQL服务。

3、在命令行中输入“mysql -uroot -p”(不输入密码),回车即可进入数据库。

4、执行,“use mysql;”使用mysql数据库。

5、执行,“update user set password=PASSWORD("rootadmin") where user='root';”(修改root的密码)

(期间我还select下user表中的记录,查询全部的时候显示了一些乱码,然后我只查询了user表中的Host、User、Password字段,貌似当时显示了3条记录,有1个没有名称。当然,为了解决问题,这些我也管不了了。)

6、打开MySQL目录下的my.ini文件(mysql的配置文件是my.cnf),删除最后一行的“skip-grant-tables”,保存并关闭文件。

7、重启MySQL服务。

8、在命令行中输入“mysql -uroot -prootadmin”,问题搞定!

vi /etc/my.cnf

遇到mysql无法正常登录的时候,修改用户名和密码

/etc/init.d/mysqld stop

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

mysql -u root

use mysql

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';

mysql> FLUSH PRIVILEGES;

mysql> quit

/etc/init.d/mysqld restart

若遇到my.cnf文件不被使用,则检查权限 chmod 775 my.cnf

只有在启动mysql服务后,在/tmp 目录下才会出来mysql.sock

开启远程访问(如Navicat)

开启3306端口 防火墙

开启外部访问设置

grant all privileges on . to 'root'@'%' identified by '123456' with grant option;

允许root使用123456从任何主机连接到mysql服务器 GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH PRIVILEGES;

允许用户myuser从ip为10.22.4.45的主机连接到mysql服务器,并使用mypassword作为密码 GRANT ALL PRIVILEGES ON . TO 'myuser'@'10.22.4.45' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUASH PRIVILEGES;

允许myuser从ip为10.22.4.45的主机连接到mysql服务器的test数据库,并使用mypassword作为密码; GRANT ALL PRIVILEGES ON test.* TO 'myuser'@'10.22.4.45' IDENTIFIED BY 'mysqlpassword' WITH GRANT OPTION; FLUSH PRIVILEGES;

增加 msyql 存储容量

Linux: vi /etc/my.cnf max_allowed_packet=20M innodb_buffer_pool_size=128M 增加大小写不区分 lower_case_table_names = 1 windows: 修改 my.ini