MySQL数据库配置相关、命令及sql语句
一、mysql连接管理
1)mysql自带的连接命令:mysql
mysql
常见的特定于客户机的连接选项:
-u: 指定用户 mysql -uroot
-p: 指定密码 mysql -uroot -p567
-h: 指定主机域 mysql -uroot -p567 -h127.0.0.1
-P: 指定端口 mysql -uroot -p567 -h127.0.0.1 -P3307
-S: 指定socket文件 mysql -uroot -p567 -S /tmp/mysql.sock
-e: 指定SQL语句(库外执行SQL语句) mysql -uroot -p567 -e "show databases;"
--protocol: 指定连接方式 mysql --protocol=TCP --protocol=socket
2)第三方的连接工具
1.sqlyog
2.navicat
3.应用程序连接MySQL
2.连接方式
1) socket连接
mysql -uroot -poldboy123 -S /service/mysql/tmp/mysql.sock
mysql -uroot -poldboy123
2) TCP/IP连接
mysql -uroot -poldboy123 -h10.0.0.51 -P3306
二、MySQL启动关闭流程
1.启动数据库
systemctl start mysql ------> mysqld_safe ------> mysqld
/etc/init.d/mysqld start ------> mysql.server ------> mysqld_safe ------> mysqld
mysqld_safe --defaults-file=/etc/my.cnf ------> mysqld_safe ------> mysqld
2.停止数据库
systemctl stop mysqld
/etc/init.d/mysqld stop
mysqladmin -uroot -p123 shutdown
不建议使用:
kill -9 pid
killall mysqld
pkill mysqld
出现问题:
1.如果在业务繁忙的情况下,数据库不会释放pid和sock文件
2.号称可以达到和Oracle一样的安全性,但是并不能100%达到
3.在业务繁忙的情况下,丢数据(补救措施,高可用)
三、MySQL实例初始化配置
1.初始化配置文件的作用
1.预编译:cmake去指定,硬编码到程序当中去
2.在命令行设定启动初始化配置
--skip-grant-tables
--skip-networking
--datadir=/application/mysql/data
--basedir=/application/mysql
--defaults-file=/etc/my,cnf
--pid-file=/application/mysql/data/db01.pid
--socket=/application/mysql/data/mysql.sock
--user=mysql
--port=3306
--log-error=/application/mysql/data/db01.err
3.初始化配置文件(/etc/my.cnf)
2.配置文件读取顺序
1)读取顺序
/etc/my.cnf
/etc/mysql/my.cnf
$basedir/my.cnf(前提是在环境变量中定义了MYSQL_HOME变量)
defaults-extra-file (类似include)
~/.my.cnf
2)生效顺序
~/.my.cnf
defaults-extra-file (类似include)
$basedir/my.cnf(前提是在环境变量中定义了MYSQL_HOME变量)
/etc/mysql/my.cnf
/etc/my.cnf
3)生效顺序验证
配置/etc/my.cnf
[root@db01 ~]
[mysqld]
server_id=1
配置/etc/mysql/my.cnf
[root@db01 ~]
[root@db01 ~]
[mysqld]
server_id=2
配置$basedir/my.cnf
[root@db01 ~]
[mysqld]
server_id=3
配置~/my.cnf
[root@db01 ~]
[mysqld]
server_id=4
重启数据库(注意这里不能使用systemctl restart mysql重启)
[root@db01 ~]
[root@db01 ~]
查看server_id
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 4 |
+---------------+-------+
1 row in set (0.00 sec)
3.1思考参数执行优先级
cmake:
socket=/service/mysql/tmp/mysql.sock
命令行:
--socket=/tmp/mysql.sock
配置文件:
vim /etc/my.cnf
[mysqld]
socket=/opt/mysql.sock
default参数:
--defaults-file=/tmp/a.txt
vim /tmp/a.txt
[mysqld]
socket=/tmp/test.sock
启动测试:
mysql_safe --defaults-file=/tmp/a.txt --socket=/tmp/mysql.sock
3.2优先级测试结论总结
1、命令行
2、defaults-file
3、配置文件
4、预编译
命令行 >> defaults-file >> ~/.my.cnf >> defaults-extra-file >> $basedir/my.cnf >> /etc/mysql/my.cnf >> /etc/my.cnf >> cmake
4.配置文件的使用
1)mysql配置文件的作用
1.影响服务端的启动(mysqld)
2.影响客户端的连接
2)配置连接数据库可以不输入密码
[root@db01 scripts]
[client]
user=root
password=123
3)修改配置的影响
- 客户端程序也是受到配置文件的影响 [mysql] && [client]
- 修改完客户端的配置,不需要重启
- 修改完服务端的配置,必须重启,才能生效 [mysqld] && [server]
四、mysql相关命令
1.mysql连接后命令行快捷命令
\c:中断当前输入语句
\r:重新连接到服务器
\d:设置语句sql结束符 mysql> \d ]
\e:编辑命令 输出输入的内容 echo
\p:打印当前命令并执行
\G:垂直显示结果
\q:退出mysql 等于 quit exit
\g:表示结束 等于 ; 的作用
\h:显示此帮助 等于 help
\t:不写入outfile
\T:将所有内容附加到给定的输出文件中(只支持本次会话) \T /tmp/a.log
\n:禁用寻呼机,打印到标准输出。
\P:设置寻呼机[到寻呼机]。通过寻呼机打印查询结果。
\R:更改mysql提示符 \R mysql>>>
\.:执行一个sql文件 等于 source
\s:从服务器获取状态信息 等于 status
\u:切换数据库 等于 use
\C:切换到另一个字符集 一般不使用
\W:在每个语句后显示警告
\w:不在每个语句后显示警告
1)help命令
mysql> help
mysql> help contents help 用法
mysql> help select
mysql> help create
mysql> help create user
mysql> help status
mysql> help show
2.客户端mysqladmin命令
1.修改密码,设置密码:password
[root@db01 ~]
2.关闭MySQL服务:shutdown
[root@db01 ~]
3.库外建库:create
[root@db01 ~]
[root@db01 ~]
4.库外删除数据库:drop
[root@db01 ~]
Do you really want to drop the 'lhd' database [y/N] y
Database "lhd" dropped
5.查看配置文件所有的默认参数:variables
[root@db01 ~]
[root@db01 ~]
6.检测MySQL进程是否存活:ping
[root@db01 ~]
7.查看数据库 慢查询,负载信息:status
[root@db01 ~]
Uptime MySQL服务器已经运行的秒数
Threads 活跃线程(客户)的数量
Questions 从mysqld启动起来自客户问题的数量 已经发送给服务器的查询的个数
Slow queries 已经超过long_query_time秒的查询数量
Opens mysqld已经打开了多少表
Flush tables flush ..., refresh和reload命令数量
Open tables 现在被打开的表数量
Queries per second avg: 0.046 负载
8.重载授权表,刷新缓存主机:reload,相当于flush privileges
[root@db01 ~]
9.刷新binlog日志
[root@db01 ~]