目录
Mysql引擎:MyISAM和innoDB
索引
普遍索引
mysql安装
MySQL管理
mysqladmin
mysqldump
mysqlshow
Mysql基础命令
Mysql引擎:MyISAM和innoDB
索引
快速查找,使用索引明显加快,索引也是一个文件,但是 创建索引就意味着插入修改变慢
普遍索引
...
mysql安装
安装命令:apt-get install mysql-server mysql-client
mysql开发工具包:sudo apt install libmysqlclient-dev
查看各工具目录:mysql_config --cflags --libs
输入密码,再次输入密码
安装结束后,MySQL服务器应该自启动,输入:netstat -tap | grep mysql 检查MySQL服务器是否正在运行:
若服务器没有启动成功,输入如下指令手工启动:/etc/init.d/mysql restart
在MySQL服务器启动成功后,输入如下指令进入MySQL:mysql -u root -p
然后输入密码进入mysql
其中,-u为用户名,-p为密码,-p后面的密码可以不在指令中填写,在指令执行后mysql会要求输入密码,当然,使用mysql -u root ppassword
可直接进入MySQl
在mysql提示符后面输入quit
便可以退出MySQL
MySQL管理
除了上述mysql -u root -p,MySQL自带其它少量管理指令,在编写访问MySQL程序之前,可以简要了解一下:
所有指令都有3个标准参数: -u Username -p[Password] -h host
-u后面的参数为MySQL用户名,-p后面的参数为密码,若不在指令中给出,则进入MySQL会提示输入密码,-h后面的参数用于在不同主机上连接一台服务器,对于本地服务器则此参数可以省略。
mysqladmin
mysqladmin为主要的管理指令,该指令有几个主要命令选项:
| create dbname |创建一个名为dbname的新数据库 |
| drop dbname | 删除dbname数据库 |
| flush-tables | 清洗所有列表 |
| password newpassword | 用newpassword变更原有口令 |
| shutdown | 关掉MySQL服务器 |
| status | 给出服务器的简短状态信息 |
| variables | 打印所有可用变量 |
| version | 给出服务器的版本信息 |
举例:
查看服务器状态:
$sudo mysqladmin -u root -p status
mysqldump
mysqldump指令可以将数据库(所有或选定的表)导出到一个文件中,一般用作备份,该指令有几个主要命令选项:
| - -add-locks | 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE |
| - -add-drop-table | 在每个create语句之前增加一个drop table |
| - -allow-keywords | 允许创建时关键词的列的名字 |
| -c, - -complete-insert | 使用完整的insert语句 |
| -C,- -compress | 如果客户和服务器均支持压缩,压缩两者之间的所有信息 |
| - -delayed | 用INSERT DELAYED 命令插入行 |
| -d,- -no-data | 不写入表的任何行信息,只导出表结构 |
| -t,- -no-create-info | 不写入表创建信息(CREATE TABLE语句) |
| - -help | 显示帮助信息 |
举例:
将数据库mysql导出到文件test.bak中:
$mysqldump -u root -p mysql>/home/wangqingchuan92/Desktop/test.bak
mysqlshow
根据设定的参数显示服务器、数据库或者表的信息:
(1)没有参数时,列出所有可用的数据库;
(2)参数是一个数据库时,列出数据库中所有的表;
(3)参数是一个数据库及一个表的名称时,列出指定列的信息;
(4)参数是数据库、表和列时,列出制定列的信息。
Mysql基础命令
show databases; 查看所有数据库
use test; 进入数据库test
show tables 查看所有表
create table user(id int,name varchar(16),passwd varchar(16),age int,addr varchar(16)); 创建表
insert into user values ('1','wd','123','25','tianjing'); 插入一条数据
select * from user where name like '%j%'; 查询name字段中含有j的行