赞
踩
- 配置文件的语法
- [程序]
- 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 #提供本地访问的快速通道
- 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
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"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。