(一)Mysql客户端和服务端模型
1、Mysql服务结构
mysql是一个典型的c/s模式,服务端与客户端两部分组成 服务端程序 mysqld 客户端程序 mysql自带客户端(mysql、mysqladmin、mysqldump等) 第三方客户端 API接口(php-mysql)
2、Mysql连接方式
TCP/IP 连接 网络连接串(通过用户名 密码 IP 端口进行连接 mysql -uroot -p123 -h 127.0.0.1 -P 3306
socket 连接 网络套接字(用户名 密码 socket文件) mysql -uroot -p123 -S /application/mysql/tmp/mysql.sock
在linux中使用mysql命令不加其他的参数连接方式即 mysql -uroot -poldboy123 使用的是套接字文件方式登录的
在linux中使用mysql命令不加其他的参数连接方式即 mysql -uroot -poldboy123 使用的是套接字文件方式登录的
3、MySQL在启动过程
启动后台守护进程,并生成工作线程 预分配内存结构供MySQL处理数据使用 实例就是MySQL的后台进程+线程+预分配的内存结构
4、mysql的存储方式
程序文件随数据目录一起存储在服务器安装目录下。执行各种客户机程序、管理程序和实用程序时将创建程序可执行文件和日志文件。首要使用磁盘空间的是数据目录。 服务器日志文件和状态文件: 包含有关服务器处理的语句的信息。日志可用于进行故障排除、监视、复制和恢复。 InnoDB 日志文件: (适用于所有数据库)驻留在数据目录级别。 InnoDB 系统表空间: 包含数据字典、撤消日志和缓冲区。 每个数据库在数据目录下均具有单一目录(无论在数据库中创建何种类型的表)。数据库目录存储以下内容: 数据文件: 特定于存储引擎的数据文件。这些文件也可能包含元数据或索引信息,具体取决于所使用的存储引擎。 格式文件 (.frm): 包含每个表和/或视图结构的说明,位于相应的数据库目录中。 触发器: 与某个表关联并在该表发生特定事件时激活的命名数据库对象。 数据目录的位置取决于配置、操作系统、安装包和分发。典型位置是 /var/lib/mysql。 MySQL 在磁盘上存储系统数据库 (mysql)。 mysql 包含诸如用户、特权、插件、帮助列表、事件、时区实现和存储例程之类的信息 逻辑结构 库 就是一个目录,为了存放多张表 表 在相应的库中,用多个文件来表示 myisam表 3个文件:(.myd数据文件 .myi索引文件 frm表 结构定义文件) innodb: 2个或者一个,共享表空间(ibdata1 基表 元数据)、独立表空间(5.6以后默认的表存储方式)
(二)Mysql管理
1、Mysql常见操作
连接管理 mysql --help
-u <user_name> 或 --host=<user_name> -p -h <host_name> 或 --host=<host_name> --protocol=<protocol_name> -P <port_number> 或 --port=<port_number> -S <socket_name> 或 --socket=<socket_name>
切换库 mysql> use mysql;
查看表 mysql> show tables;
查看列的信息(记录) mysql> desc user;
2、mysql的启动关闭方法
Win: C:\Users\yujf> net start mysql
MySQL 服务正在启动 . MySQL 服务已经启动成功。
Linux: servive mysqld start
推荐使用的方法: Win:net stop mysql
Linux:
#mysqladmin -uroot -p123 shutdown
#servive mysqld stop
尽量避免使用kill命令
mysqladmin命令关闭mysql
C:\Users\yujf>mysqladmin shutdown -uroot -p
Enter password: ********
查看mysqld状态
#mysqladmin status -uroot -p
3、my.cnf 配置文件
1、影响到服务器进程的启动
2、影响到客户端程序
配置my.cnf
使用不同的"标签"去明确指定影响哪部分功能
服务器端 [server]
[mysqld] -----> 一般设置此项
[mysqld_safe]
[client] ----> 为了方便设置此项
[mysql]
[mysqladmin]
[mysqldump]
my.cnf文件配置实例
cat /etc/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/application/mysql/data
socket=/tmp/mysql.sock
log-error=/var/log/mysql.log
port=3307
[mysql]
socket=/tmp/mysql.sock
user=root
password=123