Ubuntu14.04 安裝 mysql5.7.22,修改utf-8編碼,修改數據庫文件存放的默認路徑,設置遠程可以訪問


先給出卸載的方法,方便童鞋安裝失敗的時候可以徹底刪除mysql

徹底刪除mysql完整步驟:

1、 sudo apt-get remove mysql-server.

2、sudo apt-get autoremove mysql-server

3、sudo apt-get remove mysql-common

4、sudo rm /var/lib/mysql/ -R # 刪除數據庫目錄

sudo rm /etc/mysql/ -R #刪除啟動腳本、配置文件等

sudo apt-get autoremove mysql* --purge # 卸載mysql所有文件

sudo apt-get remove apparmor  # 這個apparmor是在裝mysql-server時裝上的,和安全有關

檢查是否卸載干凈

dpkg -l | grep mysql # 若沒有返回,說明已完成卸載

如果有返回 則執行下面的命名

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P # 清理殘余mysql文件

 接下來就開始安裝前的准備

去官網下載mysql最新版是5.7.22,下面是傳送門

https://dev.mysql.com/downloads/mysql/5.7.html#downloads

 

 

 

下載之后移動到想要放置的位置解壓,我這里是移動到了/mnt/mysql5.7/下面

然后用tar -xf mysql-server_5.7.22-1ubuntu14.04_amd64.deb-bundle.tar解壓:

 

 

  

安裝前准備工作:更新依賴源及安裝libaio1依賴

sudo apt-get update

sudo apt-get upgrade

apt-get install libaio1

開始安裝:

安裝順序如下:

1.mysql-common_5.7.22-1ubuntu14.04_amd64.deb

2.libmysqlclient20_5.7.22-1ubuntu14.04_amd64.deb

3.libmysqlclient-dev_5.7.22-1ubuntu14.04_amd64.deb

4.libmysqld-dev_5.7.22-1ubuntu14.04_amd64.deb

5.mysql-community-client_5.7.22-1ubuntu14.04_amd64.deb

6.mysql-client_5.7.22-1ubuntu14.04_amd64.deb

7.mysql-community-server_5.7.22-1ubuntu14.04_amd64.deb

一、安裝命令

dpkg -i mysql-common_5.7.22-1ubuntu14.04_amd64.deb libmysqlclient20_5.7.22-1ubuntu14.04_amd64.deb libmysqlclient-dev_5.7.22-1ubuntu14.04_amd64.deb libmysqld-dev_5.7.22-1ubuntu14.04_amd64.deb mysql-community-client_5.7.22-1ubuntu14.04_amd64.deb mysql-client_5.7.22-1ubuntu14.04_amd64.deb mysql-community-server_5.7.22-1ubuntu14.04_amd64.deb

 

 

二 輸入root密碼,OK(忘記截圖了)

三、查看是否安裝成功,命令

service mysql start

四、進入mysql,命令

mysql -u root –p

到這里mysql是安裝成功了

 

Mysql5.7.22的配置文件放的與其他版本有一些不同,在終端輸入vi /etc/mysql/my.cnf,發現該文件引用了其他的倆個文件,下面的配置寫在這個文件里面也可以生效,不過我還是分別配置在了對應的文件中,畢竟目錄這么放也是有它的原因滴

 

 

但是默認的數據庫文件是在/var/lib/mysql/下面,如果以后數據庫數據量增大,就會報磁盤不足的問題,那接下來就開始修改數據庫文件存放的默認路徑:

service mysql stop #遷移前必須停止mysql

創建mysql 存放的目標文件夾 mkdir /mnt/mysql/data

 

修改所屬用戶和用戶組 chown -R mysql:mysql /mnt/mysql/data

修改權限 sudo chmod -R 700 /mnt/mysql/data

遷移文件 cp -a /var/lib/mysql/* /mnt/mysql/data/

修改配置文件 vi /etc/mysql/mysql.conf.d/mysqld.cnf

 

以上mysql 配置完畢,在ubuntu還有些敏感操作受到了 apparmor.d 的限制,mysql也受到了限制,vi /etc/apparmor.d/usr.sbin.mysqld 將/var/lib/mysql 修改為/mnt/mysql/data

 

 

重新加載apparmor 和 啟動mysql

service apparmor reload  #不需要重啟

service mysql start

如果沒問題,這個時候已經修改成功了!

但是我在重新啟動apparmor時報下列錯誤:

Job for apparmor.service failed because the control process exited with error code. See "systemctl status apparmor.service" and "journalctl -xe" for details.

 

 

輸入systemctl status apparmor.service命令

 

 

可以看到是can’t open /lib/apparmor/function,意思就是說apparmor這個服務有問題,上網查了很久,也沒有找到有效的辦法,最后還是翻牆找到了解決辦法,下面給出傳送門

https://answers.launchpad.net/ubuntu/+source/apparmor/+question/296095

 

這邊文章說的是要重新安裝apparmor

下面是安裝命令

uname -a
lsb_release -crid
dpkg -l | grep apparmor
sudo apt-get install --reinstall apparmor

 

 

 

可以看到 service apparmor reload 成功

 

開啟遠程訪問

一 開放mysql

 

mysql的配置文件在/etc/mysql/mysql.conf.d/mysqld.cnf文件內,里面有一行bind-address = 127.0.0.1表示只允許本地訪問,將這行注釋即可

# bind-address = 127.0.0.1

 

 

二 創建新的mysql用戶

(1)首先在本地進入mysql數據庫的mysql庫內

use mysql;

(2)查看當前用戶的情況

Select Host, User from mysql.user;

 

 

一共有3個mysql賬號,Host列可以看出來,這些賬號都只支持服務器本機連接,現在我們來創建一個遠程用戶;

create user 用戶名 identified by  '密碼';

 

 

創建完成了,在程序里面連接發現還是沒有權限,剛才我們只是創建了用戶,還沒有對這個用戶分配權限;all代表接受所有操作,比如 select,insert,delete....; *.* 代表所有庫下面的所有表;% 代表這個用戶允許從任何地方登錄;為了安全期間,這個%可以替換為你允許的ip地址;然后刷新mysql用戶權限相關表;

 

 

退出mysql, 重啟數據庫

 

 

設置utf8編碼格式

輸入mysql -u root -p 命令,進入MySQL

輸入 SHOW VARIABLES LIKE 'char%'; 查看MySQL編碼,有兩個不是utf8

 

 

方法一:

a.在終端中輸入 vi /etc/mysql/mysql.conf.d/mysqld.cnf  命令

打開mysqld.cnf 文件,添加 character-set-server=utf8

 

 

b.在終端輸入 vi /etc/mysql/conf.d/mysql.cnf 命令打開mysql.cnf配置文件,如圖添加代碼:default-character-set=utf8

 

 

方法二:在終端中輸入 vi /etc/mysql/mysql.conf.d/mysqld.cnf  命令

打開mysqld.cnf 文件,添加

[client]

default-character-set=utf8

[mysqld]

character-set-server=utf8

[mysql]

default-character-set=utf8

 

 

重啟服務

 

 

輸入 SHOW VARIABLES LIKE 'char%';  命令 ,顯示修改成功

 

到此,mysql安裝成功,編碼也改為utf-8,並且開啟了遠程訪問

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM