欢迎光临,赤鹿小组
记录过程,分享经验

Ubuntu下安装MySQL 5.7.24以及修改datadir目录出错解决方案

MySQL安装部署

1、下载 Ubuntu Deb 软件包

[[email protected] ] wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.24-1ubuntu14.04_amd64.deb-bundle.tar
[[email protected] ] tar -xf mysql-server_5.7.24-1ubuntu14.04_amd64.deb-bundle.tar

2、在安装 deb 软件包前,先进行安装依赖包

[[email protected] ] apt-get update     # 更新仓库软件
[[email protected] ] apt-get install -f # 防止安装依赖关系时报错
[[email protected] ] apt-get install -y libaio1 libmecab2

3、按顺序安装 deb 软件包

[[email protected] ] dpkg -i mysql-common_5.7.24-1ubuntu14.04_amd64.deb
[[email protected] ] dpkg -i libmysqlclient20_5.7.24-1ubuntu14.04_amd64.deb
[[email protected] ] dpkg -i libmysqlclient-dev_5.7.24-1ubuntu14.04_amd64.deb
[[email protected] ] dpkg -i libmysqld-dev_5.7.24-1ubuntu14.04_amd64.deb
[[email protected] ] dpkg -i mysql-community-client_5.7.24-1ubuntu14.04_amd64.deb
[[email protected] ] dpkg -i mysql-community-source_5.7.24-1ubuntu14.04_amd64.deb
[[email protected] ] dpkg -i mysql-client_5.7.24-1ubuntu14.04_amd64.deb
[[email protected] ] dpkg -i mysql-community-server_5.7.24-1ubuntu14.04_amd64.deb
[[email protected] ] dpkg -i mysql-community-client_5.7.24-1ubuntu14.04_amd64.deb
[[email protected] ] dpkg -i mysql-community-test_5.7.24-1ubuntu14.04_amd64.deb
[[email protected] ] dpkg -i mysql-testsuite_5.7.24-1ubuntu14.04_amd64.deb

如果安装倒数第二步时出现错误,我们可以执行 apt --fix-broken install 命令可以解决
在安装的过程中,会弹出命令窗口要求我们输入数据库密码,如下
mysql

在输入完密码后,我们只要接着安装剩下的 deb 软件包即可。
Ubuntu 下,在安装 MySQL 服务后,是默认自动启动服务的。使用 netstat -antulp 命令就可查看 3306 端口是否开启。
在 Ubuntu 里,编者建议将数据库进行一次初始化。注意,使用了 mysqld --initialize 后,会有初始化密码显示,如下图:

[[email protected] ] service mysql stop
[[email protected] ] rm -rf /var/lib/mysql/
[[email protected] ] mysqld --initialize
[[email protected] ] chown mysql.mysql -R /var/lib/mysql/
[[email protected] ] service mysql stop

mysql

修改 MySQL 数据库 datadir 产生的问题

在 Ubuntu 部署 MySQL 数据库,编者也是第一次,当时以为修改 datadir 后,就可以跟 CentOS 一样,进行后续的常规操作,并将服务正常启动。谁知万万不得己意。在网上搜索一番之后,才得知 Ubuntu 修改 datadir 还需要其他的操作才可以,最后才慢慢的将问题解决。

在进行以下操作时,希望将数据都进行备份,以防后续操作失误,以便进行回滚。
一、停止MySQL服务

[[email protected] ] service mysql stop

二、将默认的datadir下的数据迁移到修改后的datadir

[[email protected] ] cp -r /var/lib/mysql /var/lib/mysql.bak    # 先进行一次备份
[[email protected] ] mv /var/lib/mysql /data/mysql
[[email protected] ] chown -R mysql.mysql /data/mysql/      # 注意datadir下属主属主

三、修改 mysql 的配置文件
将配置文件下默认的 datadir,修改成迁移数据的路径

[[email protected] ] vim /etc/mysql/mysql.conf.d/mysqld.cnf

四、修改 /etc/apparmor.d/usr.sbin.mysqld 文件

[[email protected] ]  vim /etc/apparmor.d/usr.sbin.mysqld
        # 大概在50行的位置 
        ... ...
     49 # Allow data dir access
     50 #  /var/lib/mysql/ r,
     51 #  /var/lib/mysql/** rwk,
     52   /data/mysql/ r,
     53   /data/mysql/** rwk,
        ... ...

修改完成之后,重新加载apparmor配置文件

[[email protected] ]  service apparmor reload

五、修改 /usr/share/mysql/mysql-systemd-start 文件
将类似 /var/lib/mysql 的内容全部修改为 /data/mysql

六、启动MySQL服务

[[email protected] ] service mysql start

七、登陆数据库查看数据库的 datadir 的路径是否为自己迁移后的路径

[[email protected] ] mysql -uroot -p
[[email protected] ] show variables like '%datadir%';

如果此时,显示的是修改后的路径,且数据都在修改后的路径中产生,那么,恭喜你操作成功!

赞(1)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址