MySQL笔记(基本知识点)
这是温习MySQL的笔记,也包括一些平时开发中遇到的问题。有些技术资料摘自网络。
MySQL 数据库命令行工具
MySQL : 包括一个服务器进程管理数据库,以及一系列访问数据库和创建应用的工具
mysql : 在 MySQL 中执行 SQL 查询,也可以执行在文件中存储的SQL命令
mysqlaccess : 管理用户
mysqladmin : 管理数据库服务器,包括数据库的创建和移除
mysqld : 实际的 MySQL 服务器进程
mysqldump : 将数据库或表的定义和内容转储到文件
mysqlhotcopy : 热备份
mysqlimport : 将不同文件格式的数据导入到 MySQL 表中
mysqlshow : 显示服务器或者任何对象(数据库和表)的信息
mysql_secure_installation : 用于管理 root 密码,远程访问、移除临时(测试)数据库及临时用户的一个脚本。
MySQL的常用SQL语句
清空表
TRUNCATE TABLE `web_news_content`;
删除表
DROP TABLE `web_admin_accounts`;
设置数据库的字符串整理类型
ALTER DATABASE `levelup_pkt` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
对于一个 MyISAM 表,最容易的重建索引文件的方式如下面的语句
REPAIR TABLE tbl_name QUICK;
匹配一个任意字符
SELECT * FROM pet WHERE name LIKE '_';
INSERT DELAYED... 延迟插入语句
MySQL常用配置
开启MySQL日志记录
#二进制日志
log-bin=
#查询日志
log=
#错误日志
log-error=
#更新日志
log-update=
#慢查询日志:
#log-slow-queries
MySQL常用命令
启动MySQL服务
mysqld-nt service_name
mysqladmin -u root -p shutdown
mysqld --install
mysqld --install MySQL --defaults-file=C:/my-opts.cnf
mysqld --remove
sc delete mysql
NET STOP MYSQL
NET start MYSQL
mysqlshow -u root -p
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
/c
SELECT VERSION();
SELECT CURRENT_DATE;
SELECT NOW();
SELECT USER();
use database_name;
show database;
show tables;
describe tabel_naem;
LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE table_name LINES terminater BY '/r/n';
SHOW VARIABLES LIKE 'have%';
SHOW STATUS;
mysqldump -hlocalhost -u username -p DATABASE_NAME > smth.sql
mydqldump语法:
mysqldump [options] db_name [tables]
mysqldump [options] ---database DB1 [DB2 DB3...]
mysqldump [options] --all--database
mysqldump --add-drop-table samp_db | mysql -h boa.snake.net samp_db 向另一个主机灌入数据
备份MyISAM表
mysqldump -uroot -proot --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob -x db_name > db_name.sql
mysqldump常用选项
--add-drop-table
--lock-tables
--flush-logs 关闭并重新打开更新日志文件
--routines 导出存储过程以及自定义函数
--triggers 同时导出触发器
技巧:如果用日志来提取数据库的更新日志,没有针对单个数据表的选项.所以必须手工从日志中提取.因此--flush-logs选项使用在备份整个数据库时相比单个表备份时更有效
--quick 检索出一行就写出每一行
缺省地,mysqldump在写入前将一个表的整个内容读进内存。
--opt 默认开启.打开多个选项.有助于备份
-opt优化的是你的备份过程,不是其他客户对数据库的访问。--opt选项通过一次锁定所有表阻止任何人更新你正在倾倒的任何表。
--compress 选项在你拷贝数据库到另一台机器上时很有帮助,因为它减少网络传输字节的数量
mysqladmin flush-privileges告诉服务器装载授权标并使用它们。
mysql -uroot -proot db_name < db_name.sql 把SQL文件导入Table
mysql --one-database db_name < update.392 把日志文件导入Table
mysql --one-database db_name < update.393
MySQL正则(REGEXP和NOT REGEXP匹配)
MySQL的正则符号
.
[]
*
^
$
{}
SELECT * FROM pet WHERE name REGEXP BINARY '^b'; binary区分大小写
SELECT * FROM pet WHERE name REGEXP '^.....$'; 包含正好5个字符