Linux 使用 MySQL以及 解决中文乱码

Linux 使用 MySQL以及 解决中文乱码

CentOS7 rpm 安装 mysql 5.7.17

文中指令部分使用的是旧版centos的,service xx xx等,系统自动回切换到centos 7的指令(毕竟那个长一些,懒癌晚期)。请不要在意这些细节。

使用

强烈推荐看官方原版教程,看不懂的再看下面的

下载安装

官网下载页

blabla获取第一个的下载链接(先点一下,跳出一个页面,再复制左下角“No thanks, just start my download.”处的链接,比如现在最新的https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

# 下载,刚才的链接
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
# 安装 rpm
rpm -Uvh mysql57-community-release-el7-9.noarch.rpm
# 安装mysql
yum install mysql-community-server
# 启动mysql 
service mysqld start 
# 查看mysql状态
service mysqld status

使用

# 查询默认设置的root密码
sudo grep 'temporary password' /var/log/mysqld.log
# 登录并输入刚才所得的密码
mysql -uroot -p 
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

注意:密码必须包含至少一个大写字母,一个小些字母,一个数字,一个特殊字符,不少于八个字符

中文乱码解决

登录并查看

mysql -u root -p
show variables like 'character%';
# 结果如下
+--------------------------+----------------------------+
| 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       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

拓展

character_set_client:客户端字符集
character_set_connection:链接字符集
character_set_database:数据库字符集
character_set_filesystem:文件系统
character_set_results:结果字符集
character_set_server:服务器字符集
character_set_system:mysql系统字符集

解决方案

临时设置,重启失效:

set character_set_server=utf8;

永久设置

找到etc下的my.cnf.如果没有的话去/etc/share/mysql 下找到my-default.cnf,拷贝到/etc下,并将文件名改成my.cnf

按下面内容修改my.cnf文件

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8

# 重启mysql,问题解决。
service mysqld restart

你可能感兴趣的:(Linux 使用 MySQL以及 解决中文乱码)