1. APT安装

  1. $ wget -c https://repo.mysql.com//mysql-apt-config_0.8.20-1_all.deb
  2. $ sudo dpkg -i mysql-apt-config_0.8.20-1_all.deb
  3. $ sudo apt update
  4. $ sudo apt install -y mysql-server

2. 无法登录

但是安装完 MySQL8 后,会有 2 个问题:

  • 即使安装过程中设置了 root 密码,也不能登录
  • 使用 service mysql status 提示无法为别 mysql 命令

解决方法如下:

  1. $ wget https://raw.githubusercontent.com/mysql/mysql-server/8.0/support-files/mysql.server.sh

修改文件中 data_dir 参数,以防后续默认存储拉爆,这里貌似改了也不会起作用:

  1. datadir=/home/yumingmin/data/mysql

终端下执行以下代码,就可以正常登录了。

  1. $ sudo mv mysql.server.sh /etc/init.d/mysql
  2. $ sudo chmod +x /etc/init.d/mysql
  3. $ sudo service mysql start # stop

3. 修改存储地址

登录之后,查看一下存储地址,发现还是数据放在 /var/lib/mysql 文件夹下:

  1. mysql > SHOW VARIABLES LIKE '%dir%';
  2. +-----------------------------------------+--------------------------------+
  3. | Variable_name | Value |
  4. +-----------------------------------------+--------------------------------+
  5. | basedir | /usr/ |
  6. | binlog_direct_non_transactional_updates | OFF |
  7. | character_sets_dir | /usr/share/mysql-8.0/charsets/ |
  8. | datadir | /var/lib/mysql/ |
  9. | innodb_data_home_dir | |
  10. | innodb_directories | |
  11. | innodb_doublewrite_dir | |
  12. | innodb_log_group_home_dir | ./ |
  13. | innodb_max_dirty_pages_pct | 90.000000 |
  14. | innodb_max_dirty_pages_pct_lwm | 10.000000 |
  15. | innodb_redo_log_archive_dirs | |
  16. | innodb_temp_tablespaces_dir | ./#innodb_temp/ |
  17. | innodb_tmpdir | |
  18. | innodb_undo_directory | ./ |
  19. | lc_messages_dir | /usr/share/mysql-8.0/ |
  20. | plugin_dir | /usr/lib/mysql/plugin/ |
  21. | replica_load_tmpdir | /tmp |
  22. | slave_load_tmpdir | /tmp |
  23. | tmpdir | /tmp |
  24. +-----------------------------------------+--------------------------------+

修改 /etc/mysql/mysql.conf.d/mysqld.cnf 文件,修改 datadir 属性的值:

  1. [mysqld]
  2. pid-file = /var/run/mysqld/mysqld.pid
  3. socket = /var/run/mysqld/mysqld.sock
  4. # datadir = /var/lib/mysql
  5. datadir = /home/yumingmin/data/mysql
  6. log-error = /var/log/mysql/error.log

但是修改之后提示找不到 mysql.pid,又再次无法启动了,需要将整个 /var/lib/mysql 目录移动到 /home/yumingmin/data 下。注意:一定要使用 mv 命令,不然还是有错误。

  1. $ sudo mv /var/lib/mysql /home/yumingmin/data

登录再次查看存储目录,发现存储目录已经修改了。

4. 删除 MySQL

  1. $ dpkg --list|grep mysql
  2. $ sudo apt autoremove mysql-server
  3. $ dpkg -l | grep ^rc|awk '{print $2}' | sudo xargs dpkg -P
  4. $ sudo apt autoremove --purge mysql-apt-config

参考文档:https://www.cnblogs.com/panlq/p/13704965.html

报错:mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists

  1. $ sudo mkdir -p /var/run/mysqld
  2. $ sudo chown mysql:mysql /var/run/mysqld
  3. $ sudo service mysql start