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

1.配置文件

配置文件的语法
[程序]
key=value 

特殊程序
mysqld 		#服务端
client 		#所有客户端

关键配置项(KV key=value)
user=mysql 					#程序用户
basedir=/app/mysql 			#mysql的安装路径
datadir=/data/mysql/data   	#mysql的数据目录路径
server_id=6 				#不同数据库实例 id不能一样,在主备的时候必须要配置
port=3306					#提供网络访问的端口号,默认3306
socket=/tmp/mysql.sock      #提供本地访问的快速通道

2.强制修改MySQL密码

方法一:
1.关闭mysqld服务
systemctl stop mysqld

2.启动跳过授权表
mysqld --skip-grant-tables &

3.重启mysqld服务即可
systemctl start mysqld
方法二:
1.关闭mysqld服务
systemctl stop mysqld

2.修改配置文件
vim /etc/my.cnf
[mysqld]
skip-grant-tables

3.清除所有mysqld进程
killall mysqld

4.修改完配置文件后,重启mysqld服务即可
systemctl resatrt mysqld
方法三:
使用客户端工具mysqladmin来改密码
mysqladmin flush-privileges password '123'
方法四:
使用SQL语句
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('456');

FLUSH PRIVILEGES;#刷新
方法五:
使用修改用户属性的命令
ALTER USER 'root'@'localhost' IDENTIFIED BY '111';
方法六:
修改用户表属性(专业性)
MySQL5.7之前的mysql.user表中密码字段叫password
MySQL5.7(含)之后的mysql.user表中密码字段叫authentication_string

UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='root' AND host='localhost'; 
扩展知识:
1.列出所有的库
show databases;

2.使用库
use 库名

3.列出库中所有表
show tables;
或
show tables from 库名;

4.查看表结构
desc 表名;
desc 库名.表名;
注意点:
如果之前是通过mysqld命令来破解的
1)需要手动关闭mysqld进程
killall mysqld

2)正常启动mysqld
systemctl start mysqld 

如果是通过修改配置文件来实现的
1)将配置文件中的skip-grant-tables注释掉

2)重启mysqld服务即可
systemctl restart mysqld

3.MySQL多实例部署

1.环境部署

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

2.创建环境所需资源

# 创建目录
mkdir -p /data/330{7,8,9}/data 

# 修改归属
chown -R mysql.mysql /data/33*

3.初始化各个实例

mysqld --initialize-insecure  --user=mysql --basedir=/app/mysql --datadir=/data/3307/data
mysqld --initialize-insecure  --user=mysql --basedir=/app/mysql --datadir=/data/3308/data
mysqld --initialize-insecure  --user=mysql --basedir=/app/mysql --datadir=/data/3309/data

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

1)3307的配置文件
vim /data/3307/my.cnf
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data/3307/data
server_id=7
port=3307
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log

2)3308的配置文件
vim /data/3308/my.cnf
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data/3308/data
server_id=8
port=3308
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log

3)3309的配置文件
vim /data/3309/my.cnf
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data/3309/data
server_id=9
port=3309
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log

5.启动各个实例

# 临时启动
mysqld --defaults-file=/data/3307/my.cnf &
mysqld --defaults-file=/data/3308/my.cnf &
mysqld --defaults-file=/data/3309/my.cnf &
创建systemd托管脚本
路径有两个
/usr/lib/systemd/system/
/etc/systemd/system/

cat > /etc/systemd/system/mysql3307.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysql3308.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
LimitNOFILE = 5000
EOF

cat > /etc/systemd/system/mysql3309.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
LimitNOFILE = 5000
EOF

6.启动服务

systemctl daemon-reload 
systemctl enable mysql3307 mysql3308 mysql3309
systemctl start mysql3307 mysql3308 mysql3309

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

1.先看进程
ps aux | grep [m]ysqld

2.看端口号
netstat -lntp | grep mysqld

3.尝试本地登录,判断socket是否正确
mysql -S/data/3307/mysql.sock -e "select @@server_id"
mysql -S/data/3308/mysql.sock -e "select @@server_id"
mysql -S/data/3309/mysql.sock -e "select @@server_id"

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值