mysql5.7.22設定中文編碼-解決亂碼問題Linux

雲驛站發表於2018-05-29

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qingfeng812/article/details/80491916

異常情況:

由於工作需要以及個人技術方面的興趣,開始接觸了之前沒有接觸的Linux部署應用程式一塊;最近用linux安裝mysql的時候,安裝過程正常;但是利用mybaits寫入mysql表資料的時候,發生亂碼了。為此開始排查和解決亂碼問題:

連線了Linux伺服器的資料庫

image.png

成功解決問題之後:

image.png
image.png

image.png

解決方法:

  • 配置預設配置檔案

    在mysql 5.7.18版本及以後版本,沒有預設配置檔案;需要自己建立配置檔案並儲存在mysql 預設讀取的路徑下面;

檢視mysql 配置檔案讀取命令:
~
/usr/local/mysql/bin/mysqld –verbose –help | grep -A 1 `Default options`
~

配置檔案基本模板:

~~~

[*]這個標記不能去掉,否則mysql無法識別配置檔案裡面的引數

[mysqld]

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

一般配置選項

basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306

需要自己在linux建立指定資料夾路徑,並且賦予檔案目錄高許可權,否則mysql會因為無法讀取.sock檔案而啟動報錯,併產生相應的報錯提示

socket = /var/run/mysqld/mysqld.sock
character-set-server=utf8

[mysql]
no-auto-rehash
default-character-set=utf8
safe-updates
~~~

沒有設定路徑以及放開許可權導致啟動mysql報錯提示:

~
2018-05-28T09:56:25.201315Z 0 [ERROR] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
2018-05-28T09:56:25.201318Z 0 [ERROR] Unable to setup unix socket lock file.
2018-05-28T09:56:25.201321Z 0 [ERROR] Aborting
~

image.png

linux建立路徑就不寫了,用命令列或者是xftp工具建立都可以
socket = /var/run/mysqld/mysqld.sock

設定許可權 /run/mysqld/ 就是/var/run/mysqld/mysqld.sock,一個快捷連結
~
chmod 777 /run/mysqld
~

啟動mysql

~
bin/mysqld_safe –user=mysql &
~

停止mysql

~
mysqladmin -uroot -p shutdown
~

mysql配置檔案中解決中文亂碼的兩行關鍵程式碼:
~~~
character-set-server=utf8

default-character-set=utf8
~~~

記住,在mysql配置檔案配置好中文亂碼之後,一定要重啟mysql服務,命令上面已經給出。

配置檔案存放位置:/etc/my.cnf 當然,其它路徑也可以。

~
Last login: Mon May 28 16:08:35 2018 from 183.15.179.142
root@iZwz9hx2ppf9lebmxfezz2Z:~# /usr/local/mysql/bin/mysqld –verbose –help | grep -A 1 `Default options`
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
root@iZwz9hx2ppf9lebmxfezz2Z:~# ^C
~

轉載請註明出處 https://www.jianshu.com/p/1deac307a923

參考文獻:


相關文章