MySQL-day4-配置相关与部分命令

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	# 注意:需要加载对应语言程序的API

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 ~]# vim /etc/my.cnf
[mysqld]
server_id=1

配置/etc/mysql/my.cnf
[root@db01 ~]# mkdir /etc/mysql
[root@db01 ~]# vim /etc/mysql/my.cnf
[mysqld]
server_id=2

配置$basedir/my.cnf
[root@db01 ~]# vim /service/mysql/my.cnf 
[mysqld]
server_id=3

配置~/my.cnf
[root@db01 ~]# vim ~/.my.cnf
[mysqld]
server_id=4

重启数据库(注意这里不能使用systemctl restart mysql重启)
[root@db01 ~]# systemctl stop mysql
[root@db01 ~]# /etc/init.d/mysqld start

查看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]# vim /etc/my.cnf
# 最下面添加如下内容,且不需要重启和输入密码就可以直接连数据库
[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    #help还可以查看命令语法 help create database;
	\t:不写入outfile
	
\T:将所有内容附加到给定的输出文件中(只支持本次会话)        \T /tmp/a.log
	\n:禁用寻呼机,打印到标准输出。
	\P:设置寻呼机[到寻呼机]。通过寻呼机打印查询结果。
	
\R:更改mysql提示符    \R mysql>>> 

\.:执行一个sql文件    等于 source

\s:从服务器获取状态信息    等于 status

\u:切换数据库    等于 use  #查看当前所在数据库select database();
	\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 ~]# mysqladmin -uroot -p旧密码 password '新密码'

2.关闭MySQL服务:shutdown
[root@db01 ~]# mysqladmin -uroot -p密码 -S socket文件 shutdown

3.库外建库:create
[root@db01 ~]# mysqladmin -uroot -p密码 create lhd
[root@db01 ~]# mysql -uroot -p123456 -e 'create database lhd'

4.库外删除数据库:drop
[root@db01 ~]# mysqladmin -uroot -p123456 drop lhd
Do you really want to drop the 'lhd' database [y/N] y
Database "lhd" dropped

5.查看配置文件所有的默认参数:variables
[root@db01 ~]# mysqladmin -uroot -p123456 variables
[root@db01 ~]# mysqladmin -uroot -p123456 variables | grep server_id

6.检测MySQL进程是否存活:ping
[root@db01 ~]# mysqladmin -uroot -p123456 ping

7.查看数据库 慢查询,负载信息:status
[root@db01 ~]# mysqladmin -uroot -p123456 status
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 ~]# mysqladmin -uroot -p123456 reload

9.刷新binlog日志
[root@db01 ~]# mysqladmin -uroot -p123456 flush-log
posted @ 2022-06-09 18:19  秋风お亦冷  阅读(15)  评论(0编辑  收藏  举报