Ubuntu16.04 離線安裝 MySQL5.7

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服務,即可
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章