这是我参与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