MySQL 组成和常用工具

1、客户端程序

  • mysql:基于mysql协议交互式或非交互式的CLI工具
  • mysqldump:备份工具,基于mysql协议向mysqld发起查询请求,并将查得的所有数据转换成insert等写操作语句保存文本文件中
  • mysqladmin:基于mysql协议管理mysqld
  • mysqlimport:数据导入工具

MyISAM存储引擎的管理工具:

  • myisamchk:检查MyISAM库
  • myisampack:打包MyISAM表,只读

2、服务器端程序

  • mysqld_safe
  • mysqld
  • mysqld_multi 多实例 ,示例:mysqld_multi –example

3、用户账号

mysql用户账号由两部分组成

'USERNAME'@'HOST'
root@'10.0.0.100'
root@'10.0.0.%'
root@'%'

# HOST限制此用户可通过哪些远程主机连接mysql服务器
# % 匹配任意长度的任意字符,相当于shell中*
# _ 匹配任意单个字符,相当于shell中? 

4、mysql 客户端命令

4.1、mysql 运行命令类型

  • 客户端命令:本地执行,每个命令都完整形式和简写格式
  • 服务端命令:通过mysql协议发往服务器执行并取回结果,命令末尾都必须使用命令结束符号,默认为分号
# 客户端命令
[root@centos79-mysql01 ~]# mysql -V
mysql  Ver 14.14 Distrib 5.7.40, for Linux (x86_64) using  EditLine wrapper

mysql> \h, help
mysql> \u,use
mysql> \s,status
mysql> \!,system

# 服务端命令
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.40    |
+-----------+
1 row in set (0.00 sec)

4.2、mysql 使用模式

  • 交互模式
  • 脚本模式
# 脚本模式
mysql -uUSERNAME -pPASSWORD < /path/somefile.sql
cat /path/somefile.sql | mysql -uUSERNAME -pPASSWORD
mysql> source   /path/from/somefile.sql

4.3、mysql命令使用格式

mysql [OPTIONS] [database]
# mysql客户端常用选项
-A, --no-auto-rehash       禁止补全
-u, --user=                用户名,默认为root
-h, --host=                服务器主机,默认为localhost
-p, --passowrd=            用户密码,建议使用-p,默认为空密码
-P, --port=                服务器端口
-S, --socket=              指定连接socket文件路径
-D, --database=            指定默认数据库
-C, --compress             启用压缩
-e   "SQL"                 执行SQL命令
-V, --version              显示版本
-v  --verbose              显示详细信息
--print-defaults           获取程序默认使用的配置
# 登录系统
# 默认空密码登录
mysql  -uroot  -p
# 范例
# 运行mysql命令
mysql> use mysql                            #切换数据库
mysql> select database();                   #查看当前数据库
mysql> select user();                       #查看当前用户
mysql> system clear                         #清屏
mysql> ^DBye                                #ctrl+d 退出

4.4、mysqladmin命令

mysqladmin [OPTIONS] command command....
#查看mysql服务是否正常,如果正常提示mysqld is alive
mysqladmin -uroot -pcentos   ping

#关闭mysql服务,但mysqladmin命令无法开启
mysqladmin -uroot -pcentos shutdown

#创建数据库testdb
mysqladmin -uroot -pcentos   create testdb

#删除数据库testdb
mysqladmin -uroot -pcentos   drop testdb

#修改root密码
mysqladmin -uroot -pcentos password 'Root123!'

#日志滚动,生成新文件/var/lib/mysql/mariadb-bin.00000N
mysqladmin -uroot -pcentos flush-logs

4.5、mycli

MyCLI 是基于Python开发的MySQL的命令行工具,具有自动完成和语法突出显示功能

# 安装
[root@centos79-mysql01 ~]# yum install python3-pip -y
[root@centos79-mysql01 ~]# pip3 install mycli

5、服务器端配置

5.1、服务器端配置文件

服务器端(mysqld):工作特性有多种配置方式

  • 命令行选项:
  • 配置文件:类ini格式,集中式的配置,能够为mysql的各应用程序提供配置信息
# 服务器端配置文件
/etc/my.cnf                   #Global选项
/etc/mysql/my.cnf             #Global选项
~/.my.cnf                     #User-specific 选项
# 配置文件格式
[mysqld]
[mysqld_safe]
[mysqld_multi]
[mysql]
[mysqladmin]
[mysqldump]
[server]
[client]
# 格式
parameter = value

_和- 相同
1,ON,TRUE意义相同, 0,OFF,FALSE意义相同,无区分大小写

5.2、socket 连接说明

服务器监听的两种 socket 地址

  • ip socket:监听在tcp的3306端口,支持远程通信 ,侦听3306/tcp端口可以在绑定有一个或全部接口IP上
  • unix sock:监听在sock文件上,仅支持本机通信, 如:/var/lib/mysql/mysql.sock),host为localhost 时自动使用unix sock
# MySQL的端口
mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)

# MySQL8.0增加了一个33060/tcp端口
mysql> show variables like 'mysqlx_port';

5.3、关闭mysqld网络连接

只侦听本地客户端, 所有客户端和服务器的交互都通过一个socket文件实现,socket的配置存放在/var/lib/mysql/mysql.sock) 可在/etc/my.cnf修改。

[root@centos79-mysql01 ~]# vim /etc/my.cnf
[mysqld]
skip-networking=1
bind_address=127.0.0.1

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享