故事背景:mysql
好久好久之前(2017.6.5,文章有其時效性,特別是使用的工具更新換代頻發,請記住這個時間,若已經沒有價值,一切以工具官方文檔爲準),下了個mysql版本玩玩,恰好最新是mysql5.7.18,本機是win十、64位系統。大抵步驟分爲:sql
一、下載:以官網(https://www.mysql.com)爲準,download響應系統版本;安全
二、初始化:命令行(cmd)進入解壓目錄bin文件夾(下載下來後應該要解壓吧?過久有點遺忘。還有下載下來是沒有data這個文件夾以及ini等文件的),這裏有兩種初始化方式。一種叫不安全初始化,及輸入: mysqld --initialize ,初始化使root這個用戶沒有密碼(沒密碼因此不安全);一種就是所謂的安全初始化,輸入: mysqld --initialize-insecure ,生成有密碼的root用戶,密碼能夠在生成後出現的日誌文件裏查看,就在初始化後生成的data文件裏工具
三、啓動服務: 輸入: net start mysql (關閉服務: 輸入: net stop mysql),若是提示net不是內部命令,那麼多是net沒安裝,也多是沒配置環境變量 ,檢查一下就行編碼
四、基本上應該是這樣,其餘的能夠查詢mysql命令大全去搞。命令行
接下來講說配置字符集的問題。3d
原由:日誌
就是昨天,首先對着mysql命令行查看數據太過抽象,因此先下載了個Navicat for mysql(可視化界面),看起來就好多了。如圖:server
而後在表中插入數據時會報錯「Incorrect string value」,百度了一下說是要將字符集改成utf8mb4,這是由於其餘編碼存不了一些特殊字符的關係,詳情能夠百度。blog
通過:
修改字符集首先進入mysql: mysql -uroot (用戶登陸,由於初始化選了沒密碼的那種),show variables like 'char%' (查看字符編碼),如圖:
能夠在命令行裏輸入例如: set character_set_server=utf8mb4 來改變字符集,但僅限當次有效,重啓服務時會恢復默認值。接下來試試其餘方法,網上衆說紛紜,含糊不清,真假難以分辨 。因而上官網看了一下(官網也很水,沒有例子能夠參照,就像告訴瞎子白色是白色同樣,而我就是那個瞎子),看了文檔裏有個查看變量的指令:mysqld --verbose --help,查看的變量均可以配置在選項文件裏,每次啓動服務就會按選項文件裏的自動去配置,而後這裏出現一句:
Default options are read from the following files in the given order
我想應該是選項文件可能存在的地方,也就是說咱們新建出的選項文件要以它顯示出來的名字命名,放到它顯示出的該放的地方。如圖:
新建一個my.ini文件,放在D:\mysql下,恰好就是它顯示出來位置的其中一個,如上圖。my.ini內容以下:
基本上就是以這樣的形式來配,這裏只拿了個罪魁禍首character_set_server,固然關聯的字符集配置要統一,不然可能會亂碼,能夠去百度看看每個字符集都表明什麼意思。
而後關閉mysql服務,開始配置(輸入 mysqld --install):
一、若是非管理員打開cmd輸入 mysqld --install會報以下信息,說是命令被拒絕:
二、改用管理員打開,說是服務已存在(那麼先把它刪了就行了):
三、查詢mysql服務: sc query mysql(也能夠在控制面板-管理工具-服務中找到,或直接搜索服務)
四、刪了它:(也能夠在控制面板-管理工具-服務中卸載,或直接搜索服務)
五、固然重裝前要中止mysql,即便先行刪了它,不然會出現:
六、咱們停了它,此次是在控制面板停掉的,由於以前把它卸了,停掉後就消失不見(命令行: net stop mysql),從新執行,成功的同時啓動mysql服務:
七、重啓成功,登上去上看看有沒有改動成功:
八、而後到此就能夠了,以後又試了幾回,只要改了my.ini後,關閉在從新啓動mysql服務,它每次都會按my.ini來改,也就是說之後若是不滿意不用從頭走一遍,只要改my.ini後重啓服務就行了。如圖:
我再改:
配置就到這了,bye!