mysql学习笔记(一)

196 阅读4分钟

(一)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