Ubuntu环境下安装部署mysql5.7&开启远程访问连接&修改数据存放位置&卸载mysql

前言

本文档适用于在Ubuntu20.04系统下部署mysql5.7,是有网的情况下。

提供了两种安装mysql5.7的方法,并且还讲解了开启mysql远程访问权限,允许远程连接;以及讲解了如何修改数据库数据的存放路径。

一、安装前的准备工作

1.确认目前服务器上是否存在MySQL

rpm -qa | grep mysql

如出现如图所示,提示没有rpm命令,我们需要安装rpm,命令:apt install rpm

 说明:若返回空信息,就说明当前环境没有安装MySQL;直接跳到第4步操作后续。

 2.查看MySQL的相关的配置文件、源代码和帮助文档的位置

whereis mysql

ps:如果有会返回mysql相关的路径

3.通过上述找到对应的目录删除对应的mysql的相关文件

rpm -e --nodeps mysql-xxxx

-- nodeps 参数,跳过依赖检查

说明:如果你当前环境没有安装mysql请忽略2,3步骤。

4.检查当前环境是否有自带的mariadb数据库

rpm -qa | grep mariadb

说明:若返回空信息,就说明当前环境没有安装mariadb;跳到dpkg的步骤安装。

5.建议卸载

rpm -e --nodeps mariadb-libs

 二、通过dpkg -i的方式安装(方法一)推荐

1.下载mysql5.7的deb文件源码包

cd /usr/local

mkdir mysql

cd mysql

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.35-1ubuntu18.04_amd64.deb-bundle.tar

ps:默认是下载到当前目录下。

2.解压源码包

tar -xvf mysql-server_5.7.35-1ubuntu18.04_amd64.deb-bundle.tar

 解压后的相关包

 3.删除名称带有test相关包,无用

rm -f mysql-community-test_5.7.35-1ubuntu18.04_amd64.deb

rm -f mysql-testsuite_5.7.35-1ubuntu18.04_amd64.deb

4.使用dpkg命令安装

dpkg -i mysql-*.deb

说明:dpkg -i 是用于安装 .deb 文件的 dpkg 命令选项。

(正在读取数据库…当前安装了78536个文件和目录。)

正在准备解压缩mysql-client_5.7.35-1ubuntu18.04_amd64.deb。。。

正在解压缩mysql客户端(5.7.35-1ubuntu18.04)。。。

选择之前未选择的包mysql-common。

正在准备解压缩mysql-common_5.735-1ubuntu18.04_amd64.deb。。。

正在解包mysql common(5.7.35-1ubuntu18.04)。。。

选择之前未选择的包mysql社区客户端。

正在准备解压缩mysql-community-client5.7.35-1ubuntu18.04_amd64.deb。。。

正在解包mysql社区客户端(5.7.35-1ubuntu18.04)。。。

选择之前未选择的包mysql社区服务器。

正在准备解压缩mysql-community-server_5.7.35-1ubuntu18.04_amd64.deb。。。

正在解包mysql社区服务器(5.7.35-1ubuntu18.04)。。。

选择之前未选择的包mysql社区源。

正在准备解压缩mysql-community-source_5.7.35-1ubuntu18.04_amd64.deb。。。

正在解包mysql社区源代码(5.7.35-1ubuntu18.04)。。。

选择之前未选择的包mysql服务器。

正在准备解压缩mysql-server_5.7.35-1ubuntu18.04_amd64.deb。。。

正在解压缩mysql服务器(5.7.35-1ubuntu18.04)。。

正在设置mysql-common(5.7.35-1ubuntu18.04)。。。

更新备选方案:使用/etc/mysql/my.cnf.fallback在自动模式下提供/etc/mysql/my.cnf(my.cnf)

dpkg:依赖性问题阻碍了mysql社区客户端的配置:

mysql社区客户端依赖libtinfo5(>=6);但是:

未安装程序包libtinfo5。

dpkg:错误处理包mysql社区客户端(--install):

依赖关系问题-保持未配置

dpkg:依赖性问题阻碍了mysql社区服务器的配置:

mysql社区服务器依赖于libmecab2;但是:

未安装程序包libmecab2。

dpkg:处理mysql社区服务器包时出错(--install):

依赖关系问题-保持未配置

正在设置mysql社区源代码(5.7.35-1ubuntu18.04)。。。

dpkg:依赖性问题阻碍了mysql服务器的配置:

mysql服务器依赖于mysql社区服务器(=5.7.35-1ubuntu18.04);但是:

包mysql社区服务器尚未配置。

dpkg:处理包mysql-server(--install)时出错:

依赖关系问题-保持未配置

dpkg:依赖性问题阻碍了mysql客户端的配置:

mysql客户端依赖于mysql社区客户端(=5.7.35-1ubuntu18.04);但是:

包mysql社区客户端尚未配置。

dpkg:处理包mysql客户端(--install)时出错:

依赖关系问题-保持未配置

正在处理man数据库的触发器(2.9.1-1)。。。

正在处理systemd的触发器(245.4-4ubuntu3.22)。。。

处理时遇到错误:

mysql社区客户端

mysql社区服务器

mysql服务器

mysql客户端

上述意思是缺少libtinfo5和libmecab2包,我们直接一次性安装

apt install libtinfo5 libmecab2

运行之后会出现如下所示:设置root用户密码

 确认密码

5.查看版本

mysql -V 或 /usr/bin/mysql -V

 6.查看mysql的状态

systemctl status mysql

 7.启动mysql

systemctl start mysql

8.停止mysql服务

systemctl stop mysql

 9.重启mysql服务

systemctl restart mysql

 10.自启动

systemctl enable mysql

三、通过压缩包的方式安装(方法二)

1.通过命令下载你想要的mysql安装包

cd /usr/local/

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz

2. 解压

tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz 

3.修改解压后的名称:mysql

mv mysql-5.7.35-linux-glibc2.12-x86_64 mysql

4.创建存放数据的目录

mkdir -p /u01/mysql/data

cd /u01/mysql/data

5.给创建的数据目录赋予权限

chmod -R 777 /u01/mysql/data

6.创建用户用户组,并将创建的用户添加到用户组中

groupadd mysql 创建用户组
useradd -g mysql mysql 创建用户mysql(mysql)并将用户添加到用户组(mysql)中

7.修改mysql配置文件

vim /etc/my.cnf  

[mysqld]

bind-address=0.0.0.0

port=3306

user=mysql

basedir=/usr/local/mysql

datadir=/u01/mysql/data

socket=/tmp/mysql.sock

log-error=/u01/mysql/data/mysql.err

pid-file=/u01/mysql/data/mysql.pid

#character config

character_set_server=utf8mb4

symbolic-links=0

explicit_defaults_for_timestamp=true

8.安装并初始化mysql

(1)进入mysql安装目录的bin目录

        cd bin

(2)执行如下命令

./mysqld --initialize --user=mysql --datadir=/u01/mysql/data/ --basedir=/usr/local/mysql/

9.查看mysql密码

cat /u01/mysql/data/mysql.err

10.修改配置如下所示:

打开文件:

vim /usr/local/mysql/support-files/mysql.server

 11.添加软连接

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

12.启动mysql

如果使用 service mysql start 出现如下所示,就使用后面的命令启动mysql

上述命令不行,可以尝试命令: sudo /etc/init.d/mysql start

 四、开启mysql远程访问权限,允许远程连接

1.登录mysql

mysql -u root -p

2.选择mysql数据库

use mysql

3.修改配置

update user set host='%' where user='root';

 4.刷新权限,使其生效

flush privileges;

5.退出

exit

五、修改数据存储路径

1.查看当前mysql的数据存放路径

(1)登录mysql

(2)看目前mysql的数据存放路径

show variables like '%datadir%';

 默认的数据存放位置

 2.在/etc/mysql/mysql.conf.d目录下,修改mysqld.cnf文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf

如下:

3.编辑usr.sbin.mysqld配置文件

vim /etc/apparmor.d/usr.sbin.mysqld

修改成如下配置

 

在最后添加两行命令,是为了AppArmor配置以允许MySQL访问所需的文件和目录

4.配置权限

sudo chmod -R 775 /u01/mysql/data 配置文件夹的权限
sudo chown -R mysql:mysql /u01/mysql/data

 5.重启服务

service apparmor reload

service apparmor restart

service mysql start

6.再验证一下是否修改成功-重新执行步骤1

遇到问题

问题一:

AppArmor parser error for /etc/apparmor.d/usr.lib.snapd.snap-confine.real in /etc/apparmor.d/usr.lib.snapd.snap-confine.real at line 11: Could not open '/var/lib/snapd/apparmor/snap-confine' Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd AppArmor parser error for /etc/apparmor.d/usr.sbin.mysqld in /etc/apparmor.d/usr.sbin.mysqld at line 7: Could not open 'abstractions/mysql'

解决方法:安装snap

apt intasll snap

问题二:

--initialize specified but the data directory has files in it. Aborting.

意思是初始化数据目录时发现目录里面有文件,可能原因是之前运行过命令目录中已生成文

件。

解决方法:只要我们找到MySQL的数据目录并删除里面的文件即可解决。

找到mysql存放的路径上面的第2步就可以看见,原位置是/var/lib/mysql,切换到这个目录下,删除所有文件命令 rm -rf * 再看一下新位置(/u01/mysql/data/)是否存在文件有的话也删除。全部删除完成之后,重新执行mysql启动命令:systemctl status mysql

注:只适用于新安装的数据库,不适用之前安装好的修改存储路径,后者需要先备份数据。

六、MySQL实用操作命令

1.连接mysql命令

mysql -u root -p

输入密码

2.显示所有的数据库

show databases;

3.切换数据库

use 数据库;

4.显示某个数据库的表信息

show tables;

 5.创建数据库

drop database 数据库名;

 6.删除数据库

drop database 数据库名;

7.退出

exit

七、卸载mysql

1.停止mysql服务器

systemctl stop mysql

2.删除mysql软件包

sudo apt-get remove --purge mysql-server mysql-client mysql-common

3.检查是否还存在mysql的相关文件

whereis mysql

4.如果存在跟着上述目录一个一个去删除

5.清理残留依赖关系

sudo apt-get autoremove

 6.列出已安装在系统上的与 "mysql" 相关的软件包

sudo dpkg -l | grep mysql

7.找到之后再通过命令删除mysql相关软件包

sudo apt-get remove --purge mysql相关软件包 

猜你喜欢

转载自blog.csdn.net/m0_52985087/article/details/132477049