当前位置:   article > 正文

Mysql创建实例及强制修改密码_mysql强制修改密码

mysql强制修改密码

1.配置文件

  1. 配置文件的语法
  2. [程序]
  3. key=value
  4. 特殊程序
  5. mysqld #服务端
  6. client #所有客户端
  7. 关键配置项(KV key=value)
  8. user=mysql #程序用户
  9. basedir=/app/mysql #mysql的安装路径
  10. datadir=/data/mysql/data #mysql的数据目录路径
  11. server_id=6 #不同数据库实例 id不能一样,在主备的时候必须要配置
  12. port=3306 #提供网络访问的端口号,默认3306
  13. socket=/tmp/mysql.sock #提供本地访问的快速通道

2.强制修改MySQL密码

方法一:
  1. 1.关闭mysqld服务
  2. systemctl stop mysqld
  3. 2.启动跳过授权表
  4. mysqld --skip-grant-tables &
  5. 3.重启mysqld服务即可
  6. systemctl start mysqld
方法二:
  1. 1.关闭mysqld服务
  2. systemctl stop mysqld
  3. 2.修改配置文件
  4. vim /etc/my.cnf
  5. [mysqld]
  6. skip-grant-tables
  7. 3.清除所有mysqld进程
  8. killall mysqld
  9. 4.修改完配置文件后,重启mysqld服务即可
  10. systemctl resatrt mysqld
方法三:
  1. 使用客户端工具mysqladmin来改密码
  2. mysqladmin flush-privileges password '123'
方法四:
  1. 使用SQL语句
  2. SET PASSWORD FOR 'root'@'localhost' = PASSWORD('456');
  3. FLUSH PRIVILEGES;#刷新
方法五:
  1. 使用修改用户属性的命令
  2. ALTER USER 'root'@'localhost' IDENTIFIED BY '111';
方法六:
  1. 修改用户表属性(专业性)
  2. MySQL5.7之前的mysql.user表中密码字段叫password
  3. MySQL5.7(含)之后的mysql.user表中密码字段叫authentication_string
  4. UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='root' AND host='localhost';
扩展知识:
  1. 1.列出所有的库
  2. show databases;
  3. 2.使用库
  4. use 库名
  5. 3.列出库中所有表
  6. show tables;
  7. show tables from 库名;
  8. 4.查看表结构
  9. desc 表名;
  10. desc 库名.表名;
注意点:
  1. 如果之前是通过mysqld命令来破解的
  2. 1)需要手动关闭mysqld进程
  3. killall mysqld
  4. 2)正常启动mysqld
  5. systemctl start mysqld
  6. 如果是通过修改配置文件来实现的
  7. 1)将配置文件中的skip-grant-tables注释掉
  8. 2)重启mysqld服务即可
  9. systemctl restart mysqld

3.MySQL多实例部署

1.环境部署

  1. | 主机 | 配置参数 | 实例1 | 实例2 | 实例3
  2. | db01-10.0.0.51 | server_id | 7 | 8 | 9
  3. | | port | 3307 | 3308 | 3309
  4. | | datadir | /data/3307/data | /data/3308/data | /data/3309/data
  5. | | socket | /data/3307/mysql.sock | /data/3308/mysql.sock | /data/3309/mysql.sock |
  6. | | log | /data/3307/mysql.log | /data/3308/mysql.log | /data/3309/mysql.log

2.创建环境所需资源

  1. # 创建目录
  2. mkdir -p /data/330{7,8,9}/data
  3. # 修改归属
  4. chown -R mysql.mysql /data/33*

3.初始化各个实例

  1. mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/3307/data
  2. mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/3308/data
  3. mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/3309/data

4.创建每个实例的配置文件

  1. 1)3307的配置文件
  2. vim /data/3307/my.cnf
  3. [mysqld]
  4. user=mysql
  5. basedir=/app/mysql
  6. datadir=/data/3307/data
  7. server_id=7
  8. port=3307
  9. socket=/data/3307/mysql.sock
  10. log_error=/data/3307/mysql.log
  11. 2)3308的配置文件
  12. vim /data/3308/my.cnf
  13. [mysqld]
  14. user=mysql
  15. basedir=/app/mysql
  16. datadir=/data/3308/data
  17. server_id=8
  18. port=3308
  19. socket=/data/3308/mysql.sock
  20. log_error=/data/3308/mysql.log
  21. 3)3309的配置文件
  22. vim /data/3309/my.cnf
  23. [mysqld]
  24. user=mysql
  25. basedir=/app/mysql
  26. datadir=/data/3309/data
  27. server_id=9
  28. port=3309
  29. socket=/data/3309/mysql.sock
  30. log_error=/data/3309/mysql.log

5.启动各个实例

  1. # 临时启动
  2. mysqld --defaults-file=/data/3307/my.cnf &
  3. mysqld --defaults-file=/data/3308/my.cnf &
  4. mysqld --defaults-file=/data/3309/my.cnf &
  1. 创建systemd托管脚本
  2. 路径有两个
  3. /usr/lib/systemd/system/
  4. /etc/systemd/system/
  5. cat > /etc/systemd/system/mysql3307.service<<EOF
  6. [Unit]
  7. Description=MySQL Server
  8. Documentation=man:mysqld(8)
  9. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
  10. After=network.target
  11. After=syslog.target
  12. [Install]
  13. WantedBy=multi-user.target
  14. [Service]
  15. User=mysql
  16. Group=mysql
  17. ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
  18. LimitNOFILE = 5000
  19. EOF
  20. cat >/etc/systemd/system/mysql3308.service <<EOF
  21. [Unit]
  22. Description=MySQL Server
  23. Documentation=man:mysqld(8)
  24. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
  25. After=network.target
  26. After=syslog.target
  27. [Install]
  28. WantedBy=multi-user.target
  29. [Service]
  30. User=mysql
  31. Group=mysql
  32. ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
  33. LimitNOFILE = 5000
  34. EOF
  35. cat > /etc/systemd/system/mysql3309.service<<EOF
  36. [Unit]
  37. Description=MySQL Server
  38. Documentation=man:mysqld(8)
  39. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
  40. After=network.target
  41. After=syslog.target
  42. [Install]
  43. WantedBy=multi-user.target
  44. [Service]
  45. User=mysql
  46. Group=mysql
  47. ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
  48. LimitNOFILE = 5000
  49. EOF

6.启动服务

  1. systemctl daemon-reload
  2. systemctl enable mysql3307 mysql3308 mysql3309
  3. systemctl start mysql3307 mysql3308 mysql3309

7.如何验证mysql实例正常启动

  1. 1.先看进程
  2. ps aux | grep [m]ysqld
  3. 2.看端口号
  4. netstat -lntp | grep mysqld
  5. 3.尝试本地登录,判断socket是否正确
  6. mysql -S/data/3307/mysql.sock -e "select @@server_id"
  7. mysql -S/data/3308/mysql.sock -e "select @@server_id"
  8. mysql -S/data/3309/mysql.sock -e "select @@server_id"

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/1016797
推荐阅读
相关标签
  

闽ICP备14008679号