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