前几天在自己的服务器上安装了一个NDB集群【而且还没有成功】

放弃治疗后用一台没有mysql的服务器实现了单机版本的集群。

本来以为这事到这就结束了,结果意外发现自己服务器上的MySQL被玩坏了……

本着修一修还能用的思想怒砸一个下午去修复,结果只发现了自己菜,没有发现mysql故障怎么解决……

所以就卸载重来吧……

mysql卸载主要分为三步:

  1. 卸载已安装的mysql程序;
  2. 删除相关的文件夹;
  3. 删除my.cnf文件。
  1. # 查看已安装的mysql程序
  2. shell> rpm -qa | grep -i mysql
  3. mysql-errmsg-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
  4. mysql-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
  5. mysql-common-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
  6. mysql-server-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
  7. # 按照查询结果一一删除,可能会有顺序要求,因为部分文件存在依赖关系
  8. shell> rpm -ev mysql-server-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
  9. shell> rpm -ev mysql-errmsg-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
  10. shell> rpm -ev mysql-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
  11. shell> rpm -ev mysql-common-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
  12. # rpm -qa | grep -i mariadb(删除centos默认系统自带的)
  13. shell> rpm -qa | grep -i mariadb
  14. shell> rpm -ev mariadb-connector-c-config-3.0.7-1.el8.noarch
  1. # 查看对应的MySQL目录
  2. find / -name mysql
  3. # 结果:
  4. /var/lib/docker/volumes/wp_db_data/_data/mysql
  5. /var/lib/docker/volumes/94f2988e2ff63103c8c14f2bd69df6a4579e16bc2e5fd364b366878cd1e2fdc3/_data/mysql
  6. ... ...
  7. # 删除对应目录文件[和docker有关的不删,那是另外的东西]:
  8. rm -rf /var/log/mysql
  9. rm -rf /usr/share/selinux/packages/mysql
  10. rm -rf /lanblue/conf/mysql
  11. ... ...
  1. # 最后删除配置文件
  2. shell> rm -rf /etc/my.cnf

这应该是我第三次在服务器上安装mysql,但是完全不记得之前怎么装的了,只记得简单【我明明觉得自己记过笔记的】

网上找了一百个教程都没有看到特别喜欢的,尝试yum安装但是有点问题,最后还是在官网上下的包。

因为没有my.cnf,决定去官网说明文档里找一个。

等一等……

既然我都去官网了,为什么我不按照官网的教程来,明明学NDB集群的时候就是这样做的呀,果然还是吃了有经验的亏啊……

于是按照官网安装。

还是踩坑了,有配置需求的时候要看完官网教程,不要边看边学QAQ

  1. # 在某个目录下下载包
  2. shell> wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
  3. # 解压
  4. shell> tar Jxvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
  5. # 移动和重命名
  6. # 这两步不是记得太清楚了,最后结果就是把安装目录改名为mysql8,并放在/usr/local目录下。
  7. # 大家可以放在自己喜欢的目录下
  8. shell> mv ./mysql-8.0.22-linux-glibc2.12-x86_64 /usr/local
  9. shell> cd /usr/local
  10. shell>mv ./mysql-8.0.22-linux-glibc2.12-x86_64 mysql8
  1. # 创建用户和用户组,有就不用管
  2. shell> groupadd mysql
  3. shell> useradd -r -g mysql -s /bin/false mysql
  4. # 转到安装目录下
  5. shell> /usr/local/mysql8
  6. shell> mkdir mysql-files
  7. shell> chown mysql:mysql mysql-files
  8. shell> chmod 750 mysql-files
  9. # 可能是安全方面的想法
  10. shell> bin/mysql_ssl_rsa_setup
  11. # 可选的操作,我觉得可能是设置为开机启动
  12. shell> cp support-files/mysql.server /etc/init.d/mysql.server
  13. # 不推荐!如果安装在官方推荐的目录下使用这句话没有问题,如果是自定义的目录不要用这句话
  14. # shell> bin/mysqld --initialize --user=mysql
  15. # 之后会出现问题
  16. # 初始化
  17. # 我使用的是这个语句,主要在于配置了basedir【安装目录】和datadir【存放数据的地方,里面要空】
  18. # 初始化最后一行会出现临时密码,要复制粘贴待会用。
  19. # 使用--initialize-insecure会默认没有密码,但是后续也要修改,所以我只示范本命令行中的方法
  20. shell> bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql8 --datadir=/usr/local/mysql8/data
  21. ... ...
  22. 2020-12-22T06:12:26.872936Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: &dj*3sCai3Fw
  23. # 另一种方式 使用配置文件初始化
  24. # 【在配置文件中设置目录】配置文件可以在网上找一找格式,需要自定义很多内容的小伙伴可以使用这种方式
  25. # bin/mysqld --defaults-file=/path/to/your/config/my.cnf --initialize --user=mysql
  26. # 启动服务
  27. # 跳转到bin目录
  28. shell> ./mysqld_safe --user=mysql &
  29. [1] 26248
  30. ... ...
  31. 2020-12-22T06:16:18.543780Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql8/data
  32. # 已经有启动的进程了,但是查看状态会报错。应该是我没有设置服务名,不管他
  33. shell> service mysqld status
  34. Redirecting to /bin/systemctl status mysqld.service
  35. mysqld.service
  36. Loaded: not-found (Reason: Unit mysqld.service not found.)
  37. Active: failed (Result: exit-code) since Tue 2020-12-22 09:46:34 CST; 4h 37min ago
  38. Main PID: 28825 (code=exited, status=1/FAILURE)
  39. # 尝试登陆一下
  40. shell> mysql -u root -p
  41. -bash: mysql: command not found
  42. # 默认找的是usr/local/bin,所以要做个软链接
  43. ln -s /usr/local/mysql8/bin/mysql /usr/local/bin/mysql
  44. # 之后就成功啦~记得使用之前看到的密码
  45. shell> mysql -uroot -p
  46. Enter password:
  47. # 修改密码
  48. # 选择一个新密码来替换随机密码,否则无法执行任何操作
  49. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Myp@a$w*rd';
  50. # 创建新用户并授权
  51. mysql> CREATE USER 'blue'@'%' IDENTIFIED BY 'p@ssWor$';
  52. mysql> GRANT ALL ON *.* TO 'blue'@'%';
  53. # 远程登陆如果提示 client does not support authentication protocol requested by server
  54. mysql> ALTER USER 'blue'@'%' IDENTIFIED WITH mysql_native_password BY 'p@ssWor$';
  55. # 远程登陆如果提示 authentication plugin 'sha256_password' cannot be loaded
  56. # 修改加密规则
  57. mysql> ALTER USER 'blue'@'%' IDENTIFIED BY 'p@ssWor$' PASSWORD EXPIRE NEVER;
  58. # 更新一下用户的密码
  59. mysql> ALTER USER 'blue'@'%' IDENTIFIED WITH mysql_native_password BY 'p@ssWor$';
  60. # 刷新权限
  61. mysql> FLUSH PRIVILEGES;
  62. # 这句也要执行
  63. mysql> ALTER USER 'blue'@'%' IDENTIFIED BY 'p@ssWor$';

好啦,可以用啦~超开心。

版权声明:本文为lan-blue原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lan-blue/p/14176075.html