Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

时间:2022-09-21 13:16:53

先给出卸载的方法,方便童鞋安装失败的时候可以彻底删除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

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

 

下载之后移动到想要放置的位置解压,我这里是移动到了/mnt/mysql5.7/下面

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

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问 

安装前准备工作:更新依赖源及安装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

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

二 输入root密码,OK(忘记截图了)

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

service mysql start

四、进入mysql,命令

mysql -u root –p

到这里mysql是安装成功了

 

Mysql5.7.22的配置文件放的与其他版本有一些不同,在终端输入vi /etc/mysql/my.cnf,发现该文件引用了其他的俩个文件,下面的配置写在这个文件里面也可以生效,不过我还是分别配置在了对应的文件中,毕竟目录这么放也是有它的原因滴

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

但是默认的数据库文件是在/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

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

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

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

重新加载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.

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

输入systemctl status apparmor.service命令

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

可以看到是can’t open /lib/apparmor/function,意思就是说apparmor这个服务有问题,上网查了很久,也没有找到有效的办法,最后还是FQ找到了解决办法,下面给出传送门

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

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

可以看到 service apparmor reload 成功

 

开启远程访问

一 开放mysql

 

mysql的配置文件在/etc/mysql/mysql.conf.d/mysqld.cnf文件内,里面有一行bind-address = 127.0.0.1表示只允许本地访问,将这行注释即可

# bind-address = 127.0.0.1

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

二 创建新的mysql用户

(1)首先在本地进入mysql数据库的mysql库内

use mysql;

(2)查看当前用户的情况

Select Host, User from mysql.user;

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

一共有3个mysql账号,Host列可以看出来,这些账号都只支持服务器本机连接,现在我们来创建一个远程用户;

create user 用户名 identified by  '密码';

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

创建完成了,在程序里面连接发现还是没有权限,刚才我们只是创建了用户,还没有对这个用户分配权限;all代表接受所有操作,比如 select,insert,delete....; *.* 代表所有库下面的所有表;% 代表这个用户允许从任何地方登录;为了安全期间,这个%可以替换为你允许的ip地址;然后刷新mysql用户权限相关表;

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

退出mysql, 重启数据库

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

设置utf8编码格式

输入mysql -u root -p 命令,进入MySQL

输入 SHOW VARIABLES LIKE 'char%'; 查看MySQL编码,有两个不是utf8

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

方法一:

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

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

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

b.在终端输入 vi /etc/mysql/conf.d/mysql.cnf 命令打开mysql.cnf配置文件,如图添加代码:default-character-set=utf8

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

方法二:在终端中输入 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

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

重启服务

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

 

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

 Ubuntu14.04 安装 mysql5.7.22,修改utf-8编码,修改数据库文件存放的默认路径,设置远程可以访问

到此,mysql安装成功,编码也改为utf-8,并且开启了远程访问