用程序(如Java)插入数据成功,使用navicate工具显示是中文,即便是mysql Workbench工具查询依然是中文(如图二),在命令行模式查询的结果却显示是乱码(如图三)
关于解决方法参请看文章底部的“参考资料”部分
但是有一个问题,如图四
声明:因为已经进入,所以无需再次进行验证
这时候,只好到my.ini文件查看,关键看两处(如图五)
(1)default-character-set=utf8
(默认编码设置,一般应与 *** 作系统编码一致)
(修改成default-character-set=gbk)(gb18030不行)
(2)character-set-server=utf8(服务端编码设置)
(默认不需要改,但如果不是utf8,建议改成utf8)
然后再次进入命令行模式,执行查询(如图六)
可以把default-character-set理解成客户端,character-set-server理解成服务端。客户端与服务端编码一致当然是最佳拍档!总之要多观察,多研究配置文件。这类问题不一定每次都见到,而一旦出现,便是让人很挠头。比如我之前每次都是utf8安装,用了三年,中文字符插入也没问题,唯独这次,换成64位 *** 作系统后,出现了这个问题。问题出现,可以google,可以百度,然而不一定是你想要的答案,那就自己研究吧,肯定可以解决!
尊敬的用户您好:1、 安装:
1先将mysql-noinstall-5.1.66-winx64.zip解压缩到 d:\appspace\mysql
2将其中的data 文件夹移动到d:/appspace/mysqlData 即mysql的 data路径为:d:/appspace/mysqlData/data
3my.ini配置文件有2个可选择的位置:
打开E:\appSpace\mysql \ my-large.ini (如果后面mysql出现1067错误,启动不了的话,可试着用my-huge.ini或其他), 在最后加上如下几行,然后另存为my.ini(C:\Windows).
中国电信提供最优质的网络通讯服务,老友换新机,网龄抵现金,百兆宽带免费体验,超清电视iTV,电信活动可以直接通过营业厅查询。
1、 安装:1先将mysql-noinstall-5.1.66-winx64.zip解压缩到 d:\appspace\mysql
2将其中的data 文件夹移动到d:/appspace/mysqlData 即mysql的 data路径为:d:/appspace/mysqlData/data
3my.ini配置文件有2个可选择的位置:
打开E:\appSpace\mysql \ my-large.ini (如果后面mysql出现1067错误,启动不了的话,可试着用my-huge.ini或其他), 在最后加上如下几行,然后另存为my.ini(C:\Windows).
#--------------------------------------------------------
[mysqld]
basedir=d:/appspace/mysql
datadir=d:/appspace/mysqlData/data
default-character-set=utf8
[WinMySQLAdmin]
Server=d:/appspace/mysql/bin/mysqld.exe
#default-character-set=utf8
[client]
default-character-set=utf8
#--------------------------------------------------------
4可以在mysql中查看设定的字符集(一定要在[mysqld] 中设定utf-8):
mysql>show variables like 'character%'
+--------------------------+-----------------------------------+
| Variable_name| Value |
+--------------------------+-----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary|
| character_set_results| utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | d:\appspace\mysql\share\charsets\ |
+--------------------------+-----------------------------------+
2 配置服务(命令行必须以administrator身份运行)
1)将MySQL 添加到服务中。
在Windows Run中输入cmd,这时上面有提示(cmd.exe),右键单击cmd.exe, 选择Run as administrator,进入路径: d:/appspace/mysql /bin>
输入 mysqld --install MySQL --defaults-file="C:\Windows\my.ini"
要指定defaults-file.
命令行中输入services.msc回车,可以看到MySQL已被添加到Services中,
Path to executable中的内容为
d:\appspace\mysql\bin\mysqld --defaults-file=C:\windows\my.ini MySQL
2)启动MySQL
在MySQL Service中点击Start按钮,或者在命令行(Run as administrator)中输入 net start mysql.
如果出现1067错误,启动不了,则重新检查my.ini文件(前面有描述)
3)关闭MySQL
在MySQL Service中点击Stop按钮,或者在命令行(Run as administrator)中输入 net stop mysql.
4)删除mysql服务
mysqld –remove
3 环境变量
将d:\appspace\ mysql\bin添加到Path中。
4 *** 作
登录数据库:
C:\Users\zhang10>mysql -u root -p
Enter password: *** (密码初始值可设置为root或者为空)
进入mysql后,命令后以分号结尾。
显示所有的数据库模式:
mysql>show databases
新建一个数据库模式,指定编码utf-8,否则会出现乱码。
create database md11uft8 character set utf8
选中此数据库md11utf8:
mysql>use md11utf8
创建一个表:
mysql>create table basicinfo (id int primary key auto_increment, name varchar(30) not null, age int not null)
插入数据:
mysql>insert into basicinfo(id, name, age) values('1','张三','30')
mysql>insert into basicinfo(id, name, age) values('3','李四','25')
查询:
mysql>select * from basicinfo
+----+------+-----+
| id | name | age |
+----+------+-----+
| 1 | | 30 |
| 3 | | 25 |
+----+------+-----+
可看到name中的值没有显示(中文显示不了)。
在MySQL workbench中插入值,查询会正确显示。
但是在命令行中查询显示乱码(DOS不支持UTF8从MYSQL中显示),解决如下:
mysql>set names gbk
修改root的密码:
mysql>use mysql;
mysql>update user set Password=password('newpassword') where User='root'
mysql>flush privileges
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)