mysql 数据库DBA课程03_01mysql 基础管理

1、Mysql的启动过程
1.1、日常启停
mysql.server start -----> mysqld_safe ------>mysqld
mysql.service ------->mysqld
需要依赖于 /etc/my.cnf
1.2、维护性的任务


还可以用mysqld_safe & 启动
这种启动,关闭mysql的命令:

mysqladmin -uroot -p123 shutdown
2、初始化配置(/etc/my.cnf)
作用:
影响数据库的启动
影响到客户端的功能

初始化配置的方法:
(1)、初始化配置文件(例如/etc/my.cnf)
(2)、启动命令行上进行设置(例如:mysqld_safe mysqld)
(3)、预编译时设置(仅限于编译安装时设置)

初始化配置文件的书写格式:

[标签]
xxx=xxx

[标签]

xxx=xxx
Mysql配置文件中的标签的归类:

服务器端标签:
[mysqld]
[mysqld_safe]
[server]-----都写到一起, 相当于 [mysqld] + [mysqld_safe]

客户端标签:
[mysql]
[mysqladmin]
[mysqldump]
[client]----- 都写到一起, 相当于 [mysql] + [mysqladmin] + [mysqldump]

配置文件样板:5.7

[mysqld]
user=mysql
basedir=/软件安装的目录
datadir=/data/mysql/data #(数据存放的目录)
socket=/tmp/mysql.sock
server_id=6 #主从复制才用到,1-65535
port=3306
[mysql] #客户端配置
socket=/tmp/mysql.sock #必须要和服务器端中的配置一样

配置文件读取位置:如果有冲突,以最后一个为主,比如说,两处my.cnf中有一项相同

强制使用自定义配置文件:
--defaults-file
mysqld_safe (mysqld) --defaults-file=/tmp/aa/aa.txt &
其他配置文件将不再读取。只能用mysqld_safe 和 mysqld 调用

++++++++++ Mysql 连接管理

3.1 mysql 命令

提前应该将用户授权做好
   tcpip:
   mysql -uroot -p -h10.0.0.51 -P3306 #有 -P(大P) 必须要有 -h
   socket:
   mysql -uroot -p -S /tmp/mysql.sock
同时出现,socket 和 远程,远程登录优先(TCPIP协议为主)

mysql -uroot -p -S /tmp/mysql.sock




客户端工具:
sqlyog
navicat

++++++++++++++++++++++++++++++
Mysql 多实例:
一台机器里面启动多个数据库
多个端口,多个目录,配置文件也要单独准备
创建目录:
mkdir -p /data/330{7,8,9}/data
准备配置文件:
cat >/data/3307/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=7
log_bin=/data/3307/mysql-bin
EOF

cat >/data/3308/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
port=3308
server_id=8
log_bin=/data/3308/mysql-bin
EOF

cat >/data/3309/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
port=3309
server_id=9
log_bin=/data/3309/mysql-bin
EOF

初始化数据:
mv /etc/my.cnf /etc/my.cnf.bak
mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/appalication/mysql

mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/appalication/mysql

mysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/appalication/mysql

systemd 管理多实例

cd /etc/systemd/system

cp mysqld.service mysqld3307.service
cp mysqld.service mysqld3308.service
cp mysqld.service mysqld3309.service

vim mysqld3307.service

只修改一行:
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf

mysqld3308.service mysqld3309.service 改同样地方。

目录授权:
chown -R mysql.mysql /data/*
启动Mysql 多实例
systemctl start mysqld3307
systemctl start mysqld3308
systemctl start mysqld3309







验证:
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"

在本地登录数据库实例:
mysql -S /data/3307/mysql.sock
++++++++++++++++++ Mysql 内置的功能
-u -p -S -h -P -e <
例子:

< 恢复数据时会用到,导入数据。
mysql -uroot -p123 </root/world.sql

内置命令:
help 打印帮助
\c 清除上个命令。等同于ctrl+c 结束上个命令的运行
asdfas\c
\q 退出,Ctrl + d quit exit 都可以退出mysql。
\G 格式化结果
source 导入数据; 库必须存在。