文章目录
1. MySQL的连接管理
1.1 MySQL Linux 连接协议
Socket : 本地登录,提前创建好localhost相关用户
TCP/IP : 远程登陆,提前创建好 远程用户。
1.2 MySQL 客户端
mysql :
[root@db01 ~]# mysql -uroot -p -S /tmp/mysql.sock
[root@db01 ~]# mysql -uapp -p -h10.0.0.51 -P3306
注意:
- 1.不要连接时把密码写到命令行上
- 2.脱敏(不要泄露任何的生产环境的东西)
- 华住网示例 被"脱裤"
sqlyog :
navicat :
2. MySQL的启动关闭
2.1 SySV
service mysqld start/stop/restart/status
2.2 systemd
[root@db01 support-files]# systemctl restart mysqld
2.3 手工启动方式
- 需要进行维护性操作时候运行
/etc/init.d/mysqld -----> /usr/local/mysql/bin/mysqld_safe -----> /usr/local/mysqld
- s /tmp/test.sock 灵活性较大
2.4 其他关闭方式
[root@db01 ~]# mysqladmin -uroot -p -S /tmp/mysql.sock shutdown
可以远程关闭等自己操作实践,反复揣摩。
2.5 MySQL 常用参数:
-u 用户
-p 密码
-h IP
-P 端口
-S socket文件
-e 免交互执行命令
< 导入SQL脚本
PS:要把密码隐藏起来 成为自己的规范
[root@db01 ~]# mysql -uroot -p -h 10.0.0.51 -P3306 -S /tmp/mysql.sock
Enter password:
- 优先远程登录

3. 管理员用户root@‘localhost’,密码丢失.😀
1.通过跳过授权表参数—跳过TCP/TP协议参数,启动数据库
–skip-grant-tables : 跳过授权表,连接层关闭验证模块
–skip-networking : 关闭连接层TCP/IP连接协议,只留socket文件连接2.无密码登录到MySQL
mysql3.修改密码
[root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking & mysql> flush privileges; mysql> alter user root@'localhost'identified by '123456'; [root@db01 ~]# pkill mysqld [root@db01 ~]#systemctl start mysqldPS: pkill 在生产环境中尽量不要使用
4. 初始化配置
(1)配置文件
(2)命令行
(3)编译安装
4.1 配置文件默认读取顺序(/etc/my.cnf)
[root@db01 ~]# mysqld --help --verbose|grep my.cnf
/etc/my.cnf -----> /etc/mysql/my.cnf -----> /usr/local/mysql/etc/my.cnf -----> ~/.my.cnf
scoket=A B C D
自定义默认位置:mysqld或者mysqld_safe 加入 --defaults-file=/opt/ncs.conf
vim /etc/my.cnf 中更改socket中的路径 默认在/tmp
4.2 配置文件内容
4.2.1 影响范围
服务端(mysqld) 启动和工作
本地客户端连接(socket)
4.2.2 内容结构
标签:
服务端:
- [mysqld]
- [mysqld_safe]
- [server]
客户端:
[mysql]
[mysqldump]
[client]
参数:
参数名=值
5. 多实例方案
5.1 规划
(1)端口
- 3307
- 3308
- 3309
(2)数据 :/data/330{7…9}/data
(3)配置文件: /data/330{7…9}/my.cnf
port=3307/3308/3309
server_id=7/8/9
datadir=/data/330{7…9}/data
socket=/tmp/mysql330{7…9).sock
5.2 开干
(1) 创建关键目录
mkdir -p /data/330{7..9}/data
chown -R mysql.mysql /data/*
(2)初始化数据
把原始的文件改名 或者移动走
mv /etc/my.cnf /tmp/
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3309/data
(3) 准备配置文件
cat > /data/3307/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3307/data
port=3307
server_id=7
socket=/tmp/mysql3307.sock
EOF
cat > /data/3308/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3308/data
port=3308
server_id=8
socket=/tmp/mysql3308.sock
EOF
cat > /data/3309/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3309/data
port=3309
server_id=9
socket=/tmp/mysql3309.sock
EOF
(4) 准备启动脚本
cat > /etc/systemd/system/mysqld3307.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=/usr/local/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000
EOF
cat > /etc/systemd/system/mysqld3308.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=/usr/local/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
LimitNOFILE = 5000
EOF
cat > /etc/systemd/system/mysqld3309.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=/usr/local/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
LimitNOFILE = 5000
EOF
(5) 启动多实例
[root@db01 ~]# systemctl start mysqld3307
[root@db01 ~]# systemctl start mysqld3308
[root@db01 ~]# systemctl start mysqld3309
(6) 检查
[root@db01 3307]# netstat -tulnp|grep mysqld
tcp6 0 0 :::3306 :::* LISTEN 10703/mysqld
tcp6 0 0 :::3307 :::* LISTEN 10990/mysqld
tcp6 0 0 :::3308 :::* LISTEN 11024/mysqld
tcp6 0 0 :::3309 :::* LISTEN 11058/mysqld
628

被折叠的 条评论
为什么被折叠?



