1. 下載安裝包
$ wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-server_5.7.27-1ubuntu16.04_amd64.deb-bundle.tar
2. 解壓安裝包
$ mkdir mysql_deb
$ tar -xvf ./mysql-server_5.7.27-1ubuntu16.04_amd64.deb-bundle.tar -C ./mysql_deb
解壓後得到以下文件:
$ ls mysql_deb
mysql-server_5.7.27-1ubuntu16.04_amd64.deb
mysql-testsuite_5.7.27-1ubuntu16.04_amd64.deb
mysql-common_5.7.27-1ubuntu16.04_amd64.deb
mysql-community-source_5.7.27-1ubuntu16.04_amd64.deb
mysql-client_5.7.27-1ubuntu16.04_amd64.deb
libmysqlclient20_5.7.27-1ubuntu16.04_amd64.deb
libmysqld-dev_5.7.27-1ubuntu16.04_amd64.deb
mysql-community-server_5.7.27-1ubuntu16.04_amd64.deb
libmysqlclient-dev_5.7.27-1ubuntu16.04_amd64.deb
mysql-community-client_5.7.27-1ubuntu16.04_amd64.deb
mysql-community-test_5.7.27-1ubuntu16.04_amd64.deb
3. 使用dpkg安裝依賴包
缺少包時看一下錯誤信息,然後使用apt-get安裝一下即可
$ cd mysql_deb
$ sudo dpkg -i mysql-common_5.7.27-1ubuntu16.04_amd64.deb
$ sudo dpkg -i libmysqlclient20_5.7.27-1ubuntu16.04_amd64.deb
$ sudo dpkg -i libmysqlclient-dev_5.7.27-1ubuntu16.04_amd64.deb
$ sudo dpkg -i libmysqld-dev_5.7.27-1ubuntu16.04_amd64.deb
- 安裝依賴,否則接下來安裝會報錯
$ sudo apt-get install libaio1
- 繼續安裝以下內容
$ sudo dpkg -i mysql-community-client_5.7.27-1ubuntu16.04_amd64.deb
$ sudo dpkg -i mysql-client_5.7.27-1ubuntu16.04_amd64.deb
$ sudo dpkg -i mysql-community-source_5.7.27-1ubuntu16.04_amd64.deb
- 接下來我們需要安裝mysql-community-server包了,安裝之前還需要按照一個依賴包:libmecab2。如已安裝過請忽略。
$ sudo apt-get install libmecab2
$ sudo dpkg -i mysql-community-server_5.7.27-1ubuntu16.04_amd64.deb
- 安裝過程中需要設置mysql的root賬號密碼
4. 修改存儲引擎及默認編碼等信息
- 將以下內容添加到mysql配置文件末尾(默認路徑:
/etc/mysql/mysql.conf.d/mysqld.cnf
)
default-storage-engine=INNODB
init_connect='SET NAMES utf8mb4'
character-set-server = utf8mb4
character-set-client-handshake = FALSE
collation-server = utf8mb4_general_ci
5. 配置遠程登錄
- 將
bing-address = 127.0.0.1
修改爲bind-address = 0.0.0.0
- 重啓服務
$ sudo service mysql restart
6. 其他問題
- 使用 root 賬號登錄失敗,報錯
$ mysql -uroot -p
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
解決方法:
- 將以下內容添加到mysql配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf
的[mysqld]
下面
skip-grant-tables
- 重啓mysql服務,登錄mysql(此時登錄無需輸入密碼)
$ mysql -uroot
- 執行SQL
mysql> update mysql.user set host = '%' where user = 'root';
mysql> FLUSH PRIVILEGES;
- 修改配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf
,刪掉skip-grant-tables
- 重啓mysql服務,即可