本文将为您提供关于CentOS7下让MySQL支持中文的详细介绍,同时,我们还将为您提供关于CentOS6或CentOS7下通过yum安装mysql、CentOS7支持中文显示、Centos7配置支持
本文将为您提供关于CentOS7下让MySQL支持中文的详细介绍,同时,我们还将为您提供关于CentOS6或CentOS7下通过yum安装mysql、CentOS7 支持中文显示、Centos7 配置支持中文语言、centos7下mysql 开启远程登录的实用信息。
本文目录一览:CentOS7下让MySQL支持中文
MysqL 4.1及更高版本中,字符集的支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次:服务器(server),数据库(database),数据表(table)和连接(connection)。
一、登录MysqL,使用SHOW VARIABLES LIKE 'character%';查看当前使用的字符集,显示如下:
character_set_database和character_set_server的默认字符集是latin1。
二、最简单的完美修改方法,修改MysqL的my.cnf文件中的字符集键值(注意配置的字段细节):
1、在[client]字段里加入default-character-set=utf8,如下:
[client]
port = 3306
socket = /var/lib/MysqL/MysqL.sock
default-character-set=utf8
2、在[MysqLd]字段里加入下面红色三句,如下:
[MysqLd]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
3、在[MysqL]字段里加入default-character-set=utf8,如下:
[MysqL]
no-auto-rehash
default-character-set=utf8
修改完成后,service MysqL restart重启MysqL服务就生效。注意:在较新版的mysq中,[MysqLd]字段与[MysqL]字段是有区别的。
使用SHOW VARIABLES LIKE 'character%';查看,发现数据库编码全已改成utf8。
4、如果上面的都修改了还乱码,那剩下问题就一定在connection连接层上。解决方法是在发送查询前执行一下下面这句(直接写在sql文件的最前面):
SET NAMES 'utf8';
5、使用showcreate database数据库名;查看指定数据库的编码方式,如下:
修改指定数据库的编码:
MysqL>user mydb;
MysqL>alter database mydb character set utf8;
使用show create table表名;查看表的编码格式。如下:
设置默认编码为utf8:
set names utf8;
设置数据库db_name默认为utf8:
ALTER DATABASE `db_name` DEFAULT CHaraCTER SET utf8 COLLATE utf8_general_ci;
设置表tb_name默认编码为ALTER TABLE `tb_name` DEFAULT CHaraCTER SET utf8 COLLATE utf8_general_ci;
CentOS6或CentOS7下通过yum安装mysql
CentOS6或CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源
下载myql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
(如果是CentOS6则是:wget http://repo.mysql.com/mysql-community-release-el6-7.noarch.rpm)
安装mysql-community-release-el7-5.noarch.rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
(如果是CentOS6则是:rpm -ivh mysql-community-release-el6-7.noarch.rpm)
安装mysql
yum -y install mysql-server
根据步骤安装即可,但是安装完成后,root用户默认没有密码,需要重置密码。
安装完成后,检查mysql是否默认已经启动
service mysql status(如果是CentOS6则是:service mysqld status)
Redirecting to /bin/systemctl status mysql.service
mysqld.service - MySQL Community Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled)
Active: inactive (dead)
根据上诉信息,说明默认mysql未启动
启动mysql服务
service mysql start(如果是CentOS6则是:service mysqld start)
Redirecting to /bin/systemctl start mysql.service
再次检查mysql服务是否启动成功
service mysql status(如果是CentOS6则是:service mysqld status)
Redirecting to /bin/systemctl status mysql.service
mysqld.service - MySQL Community Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled)
Active: active (running) since Thu 2016-03-31 16:27:15 HKT; 6s ago
Process: 20000 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS)
Process: 19933 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 19999 (mysqld_safe)
CGroup: /system.slice/mysqld.service
├─19999 /bin/sh /usr/bin/mysqld_safe
└─20152 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql -...
Mar 31 16:27:14 localhost.localdomain mysql-systemd-start[19933]: Support MyS...
Mar 31 16:27:14 localhost.localdomain mysql-systemd-start[19933]: Note: new d...
Mar 31 16:27:14 localhost.localdomain mysql-systemd-start[19933]: Please make...
Mar 31 16:27:14 localhost.localdomain mysql-systemd-start[19933]: WARNING: De...
Mar 31 16:27:14 localhost.localdomain mysql-systemd-start[19933]: This file w...
Mar 31 16:27:14 localhost.localdomain mysql-systemd-start[19933]: If you do n...
Mar 31 16:27:14 localhost.localdomain mysql-systemd-start[19933]: --defaults-...
Mar 31 16:27:14 localhost.localdomain mysqld_safe[19999]: 160331 16:27:14 mys...
Mar 31 16:27:14 localhost.localdomain mysqld_safe[19999]: 160331 16:27:14 mys...
Mar 31 16:27:15 localhost.localdomain systemd[1]: Started MySQL Community Ser...
Hint: Some lines were ellipsized, use -l to show in full.
根据上诉信息,说明默认mysql已经启动成功
登录mysql
因为mysql安装完成后,root用户默认没有密码,在终端输入:mysql -uroot 或 mysql,即可登录到mysql
重置root用户密码
mysql> update mysql.user set password=PASSWORD(''ytkj'') where user=''root'';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
这里要注意,mysql5.7开始,这样修改密码不行了,需要这么做:
update mysql.user set authentication_string=PASSWORD(''ytkj'') where user=''root'';
alter user root@''localhost'' identified by ''ytkj'';
flush privileges;
我们退出mysql,从终端以:mysql -uroot -pytkj登录,发现登录失败
所以我们需要重启mysql服务,让之前的修改生效
service mysql restart(如果是CentOS6则是:service mysqld restart)
Redirecting to /bin/systemctl restart mysql.service
还是以旧密码(也就是默认的没有密码)登录mysql
mysql -uroot 或 mysql
ERROR 1045 (28000): Access denied for user ''root''@''localhost'' (using password: NO)
下面我们用新密码登录mysql
mysql -uroot -pytkj
发现登录成功。
我们如果需要让其他pc机可以通过客户端连接自己安装的数据库,需要执行如下命令:
grant all privileges on *.* to root@''%'' identified by "ytkj";
flush privileges;
至此,CentOS7上安装mysql完毕。
我们查看MySQL的编码格式:
show variables like ''character%'';
我们发现如果这样就结束,会导致数据库编码格式为latin1,会导致中文乱码,所以我们修改mysql.cnf,来指定编码格式为utf8。
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
修改完毕,重启mysql服务即可。
CentOS7 支持中文显示
1. 查看系统是否安装有中文语言包
locale -a | grep "zh_CN" 命令含义:列出所有可用的公共语言环境的名称,包含有 "zh_CN"
若出现图中所示几项,那么说明系统中已经安装了语言包,不需要在安装。含义是:{语言代号_国家代号}.{字符集}
zh:是中文的代号。
CN:是中国的代号。
gb18030、gb2312、utf8、gbk:字符集
2. 如果没有安装中文语言包,那么安装一下中文语言包
yum groupinstall "fonts" (或者 yum install kde-l10n-Chinese)
3. 查看当前语言
locale
可以看到我的系统当前显示的语言中并没有中文。
4. 更改 i18n 国际化和 locale.conf 本土化配置文件(CentOS7 以下)
在 /etc/locale.conf 文件中最开始的地方增加一行 LANG=zh_CN.gbk,结果如下图所示:
然后更改 i18n 文件的内容,它在 /etc/sysconfig/ 目录下,如果没有这个文件,那么使用 touch i18n 创建它。
在文件开始的地方添加如下两行:
LANG=zh_CN.gbk
LC_ALL=zh_CN.gbk
效果如下:
CentOS7 修改 vi /etc/locale.conf。
5. 重启服务器,使刚才的配置生效
使用命令 reroot
Centos7 配置支持中文语言
1.查看本地已安装的语言包
locale -a
找到zh_CN,如果没有,需要安装中文语言包
# 安装中文包
yum install -y kde-l10n-Chinese
# 重新安装glibc-common
yum -y reinstall glibc-common
# 编译生成语言库
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
修改步骤:
1)直接输入 locale 可查看当前linux系统字符集配置;
观察是否都为"zh_CN.UTF-8"(LC_ALL可以是空的),如若不是,就需要往下走配置了
2)修改 /etc/locale.conf文件;
这个文件的内容不需要多,如果你没有特殊需求(不同功能要求不同字符集编码),仅仅放一行,
LANG="zh_CN.UTF-8"
然后就可以了,其他文件都不需要动,越动越乱。
3)让locale.conf生效;
使用
source /etc/locale.conf
然后使用 locale 命令查看是否字符集配置修改好。
centos7下mysql 开启远程登录
安装mysql
安装mysql就不做过多的介绍了,相信小伙伴们都可以很轻松的安装
进入mysql命令行
mysql -u用户名 -p密码
新建远程登录的用户
grant all on *.* to admin@''%'' identified by ''123456'' with grant option;
flush privileges;
防火墙设置
查看 firewalld 状态
systemctl status firewalld
打开 firewalld
systemctl start firewalld
开启 3306的端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新加载firewalld
firewall-cmd --reload
然后数据库连接成功
我们今天的关于CentOS7下让MySQL支持中文的分享已经告一段落,感谢您的关注,如果您想了解更多关于CentOS6或CentOS7下通过yum安装mysql、CentOS7 支持中文显示、Centos7 配置支持中文语言、centos7下mysql 开启远程登录的相关信息,请在本站查询。
本文标签: