MySQL使用问题笔记(安装、重装、使用问题常用解决办法记录)
- 安装问题汇总
- 卸载重装问题汇总
- 使用问题汇总
- 1. 配置my.ini 文件,修改默认字符集编码方式,插入中文字符报错,ERROR 1366 (HY000): Incorrect string value: '\xCD\xFA\xB2\xC6' for column 'name' at row 1
- 2. 修改my.ini配置后,MySQL无法启动,client窗口闪退无法启动
- 3. 修改已经创建好的数据库字符集属性
- 4. mysql输入前加了引用分号 '>;exit各种退出都无法执行
- 5. 表新增数据时报错 ERROR 1366 (HY000): Incorrect string value: '\xE6\x9B\xBE\xE5\x8D\x8E' for column '字段名称' at row 1
- 6. 删除表后,向该表直接插入淑娟报错,ERROR 1146 (42S02): Table 'selecttest.score' doesn't exist
- 7. ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails
- 8. 更改有外键的表字符集时报错ERROR 1832 (HY000): Cannot change column 'sno': used in a foreign key constraint 'score_ibfk_1'
安装问题汇总
卸载重装问题汇总
1. 安装MySQL时,一直提示 time remain 倒计时 2sconds remaining
原因:由于以前安装过MySQL,未卸载干净,导致安装失败
使用问题汇总
1. 配置my.ini 文件,修改默认字符集编码方式,插入中文字符报错,ERROR 1366 (HY000): Incorrect string value: ‘\xCD\xFA\xB2\xC6’ for column ‘name’ at row 1
方案:MySQL数据库安装时默认 UTF8 编码方式,下面修改为 gbk 方式
1、 先查看编码方式
show variables like 'char%';
character_set_client----客户端编码方式;
character_set_connection—建立连接使用的编码;
character_set_database—数据库的编码;
character_set_results----结果集的编码;
character_set_server----数据库服务器的编码;
只要保证以上五个采用的编码方式一样,就不会出现乱码问题。
上述查看 character_set_database
、character_set_server、 character_set_client; character_set_results
都是latin1,下面修改为 utf8
2、 找到 my.ini 文件,修改编程方式
显示隐藏文件: 此电脑 – 顶端查看 – 勾选隐藏的项目
找到 my.ini 文件:C:\ProgramData\MySQL\MySQL Server 5.7 路径下
3、 找到 my.ini 文件,修改编程方式,必须保存为ANSI格式,否则保存后MySQL无法启动
将 default-character-set
去掉 # ,并改为 ’default-character-set=utf8
将character-set-server
掉 # ,并改为 character-set-server=utf8
4、修改完上面两处,将文件保存为 ANSI 编码格式(记事本可以另存为选择,notepad++ 可以选择编码方式)
5、运行MySQL,查询是否更改成功,成功如下
show variables like '%char%';
2. 修改my.ini配置后,MySQL无法启动,client窗口闪退无法启动
😗 检查文件my.ini 内容配置是否正确,配置见上一个问题
😗 文件my.ini 修改后保存为 ANSI 格式
😗 打开服务,MySQL服务,点击重新启动
完成上面,即可打开窗口
3. 修改已经创建好的数据库字符集属性
修改数据库字符集属性
MySQL窗口,运行下面语句,修改数据库字符集属性
alter database 库名 charset 字符集类型名称;
4. mysql输入前加了引用分号 '>;exit各种退出都无法执行
解决: 输入一个引号,即可执行命令,然后用 分号;执行结束
mysql> insert into student3 values(3, '张三', '中国'四川省','成都市','高新区','天府大道90号');
'> ;
'> exit;
'> '
-> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '四川省','成都市','高新区','天府大 道90号');
5. 表新增数据时报错 ERROR 1366 (HY000): Incorrect string value: ‘\xE6\x9B\xBE\xE5\x8D\x8E’ for column ‘字段名称’ at row 1
原因:改表中的字段为latin1字符集(下见查询语句)
解决:修改该字段字符集latin1,否则插入中文报错
下面介绍查询和更改已创建表的字符集,对应各自的需求选择
查询字符集
查看mysql的字符集:show variables where Variable_name like '%char%';
查看某一个数据库字符集:show create database 数据库名;
查看某一个数据表字符集:show create table 数据表名;
如:
查询MySQL字符集
mysql> show variables where Variable_name like '%char%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.01 sec)
修改mysql的字符集
举例如下:
set 更改的名字(Variable_name)=utf8(类型—);
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
修改数据库的字符集:
alter database 库名 character set utf8
修改数据表的字符集:
alter table 表名 character set utf8
修改指定字段的字符集
alter table 表名 change 字段名 字段名 varchar(10) character set utf-8;
修改指定字段的字符集:
ALTER TABLE tablename CHANGE c1 c1 VARCHAR(50) CHARACTER SET utf8;
6. 删除表后,向该表直接插入淑娟报错,ERROR 1146 (42S02): Table ‘selecttest.score’ doesn’t exist
原因: 改变已删除,无法直接插入数据,要先创建表
解决: 创建表,然后插入数据
7. ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails
原因:某字段设置了外键,插入该字段值在关联外键的另一个表中的唯一索引列(一般是主键)中的值不匹配
解决:外键表中先增加需要的字段值 或者 更换为插入外键表已经存在的值