赞
踩
本文档适用于在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
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:默认是下载到当前目录下。
tar -xvf mysql-server_5.7.35-1ubuntu18.04_amd64.deb-bundle.tar
解压后的相关包
- rm -f mysql-community-test_5.7.35-1ubuntu18.04_amd64.deb
-
- rm -f mysql-testsuite_5.7.35-1ubuntu18.04_amd64.deb
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用户密码
确认密码
mysql -V 或 /usr/bin/mysql -V
systemctl status mysql
systemctl start mysql
systemctl stop mysql
systemctl restart mysql
systemctl enable 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
tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.35-linux-glibc2.12-x86_64 mysql
- mkdir -p /u01/mysql/data
-
- cd /u01/mysql/data
chmod -R 777 /u01/mysql/data
- groupadd mysql 创建用户组
- useradd -g mysql mysql 创建用户mysql(mysql)并将用户添加到用户组(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 |
(1)进入mysql安装目录的bin目录
cd bin
(2)执行如下命令
./mysqld --initialize --user=mysql --datadir=/u01/mysql/data/ --basedir=/usr/local/mysql/
cat /u01/mysql/data/mysql.err
打开文件:
vim /usr/local/mysql/support-files/mysql.server
- ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
- ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
如果使用 service mysql start 出现如下所示,就使用后面的命令启动mysql
上述命令不行,可以尝试命令: sudo /etc/init.d/mysql start
mysql -u root -p
use mysql
update user set host='%' where user='root';
flush privileges;
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 -u root -p
输入密码
show databases;
use 数据库;
show tables;
drop database 数据库名;
drop database 数据库名;
exit
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相关软件包
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。