首页 > 代码库 > MySQL基础

MySQL基础

1.RPM包的安装配置
MySQL-client-5.5.56-1.el7.x86_64
MySQL-server-5.5.56-1.el7.x86_64

2.MySQL客户端和服务器端怎么通讯
UNIX:mysql -> mysqld 在一台服务器上,那么通讯通过mysql.sock通讯
Win:mysql -> memory(pipe) ->mysqld

3.如果不在一台主机,那么基于TCP/IP协议进行通讯
mysql -uroot -h192.168.42.129 只要通过外网访问,即是通过TCP/IP协议访问

4.MYSQL客户端工具
my.cnf中的[client]中的选项对以下都生效
mysql
mysqldumpm
mysqladmin
mysqlcheck
mysqlimport

5.MYSQL非客户端工具
myisamchk
myisampack


执行RPM包安装之后,执行
/usr/bin/mysql_install_db --user=mysql --datadir=/mydata/
删除匿名用户,其他的都是空密码:
select User,Host,Password from user;
mysql> drop user root@‘::1‘;
Query OK, 0 rows affected (0.00 sec)
mysql> drop user ‘‘@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> drop user‘‘@localhost.localdomain;
Query OK, 0 rows affected (0.00 sec)

为其他用户添加密码:
mysql> update user set Password=PASSWORD(‘Local,001‘);
Query OK, 3 rows affected (0.00 sec)

MyISAM:
每个表有三个文件:
.frm:表结构
.MYD:表数据
.MYI:表索引

InnoDB:
所有表共享一个表空间文件;
建议每个表使用一个表空间文件,但是缺省条件下,这个参数是没有打开的。
mysql> show variables like ‘%innodb%‘;
可以查看到参数innodb_file_per_table
修改/etc/my.cnf
在[mysqld]中添加参数
innodb_file_per_table = 1
然后重启MySQL
每一个表使用一个表空间,这样的数据库定义了三个文件:
.frm:表结构
.ibd:表空间(表数据和表索引)
.opt:当前数据库的一些选项,包括字符集和排序选项


查看mysql数据文件的目录:
mysql> show variables like ‘%datadir%‘;

查看当前的默认数据库
mysql> select database();
默认情况下的数据库为NULL

MySQL客户端:
交互式模式:
批处理模式(脚本运行模式)

mysql> \?
查看mysql可以执行的命令
mysql> \. /root/my.sql

客户端命令:
\c:提取终止语句执行
\r:重新连接到服务器
\d:定义结束符
\g:无论语句结束符是什么,直接将此语句送至服务器端执行
\G:无论语句结束符是什么,直接将此语句送至服务器端执行,结果以竖排方式放置
\! COMMAND:执行SHELL命令
\W:语句执行结束后显示警告信息
\w:不显示警告信息
\#:对于新建的对象,支持补全功能

登陆的时候
mysql --html
可以将执行结果当做HTML输出

服务端命令:
help KEYWORD,譬如help select;help create index;
mysqladmin -uroot -pLocal,001
mysqladmin [options] command
mysqladmin -uroot -p password(‘NEW_PASS‘)
mysqladmin -uroot -pLocal,001 status --sleep 2

create DATABASE
drop DATABASE
ping
processlist
status
extended-status:显示状态变量
variables:显示服务器变量
flush-privileges(等同于reload):让mysqld重读授权表
flush-status:重置大多数的服务器状态变量
flush-logs:二进制和中继日志滚动,错误日志不会滚动,只会关闭后打开
flush-hosts:
refresh:相当于同时执行flush-hosts和flush-logs
shutdown:关闭数据库服务器进程
version:版本号,状态信息
start-slave:启动复制,启动从服务器复制线程
SQL thread
IO thread
stop-slave:停止服务线程


mysqldump,mysqlimport,mysqlcheck

开发视角:
数据类型;
约束;
数据库、表、索引、视图
SELECT语句

存储引擎,也被称为表类型:
MyISAM表:(不支持事务,仅支持表锁)
.frm:表结果定义文件
.MYD:表数据文件
.MYI:表索引
InnoDB表:事务,行锁
每个表打开一个表空间文件innodb_file_per_table,
表创建的时候如果不指定引擎,那么默认的就是InnoDB的引擎
.frm:表结构
.ibd:表空间(数据和索引)

SQL> SHOW ENGINES;
查看某个表是什么存储引擎:
mysql> show table status like ‘user‘\G













 

MySQL基础