首页 > 代码库 > mysql基础操作
mysql基础操作
登陆mysql命令行
mysql -h192.168.1.110 -uroot -p
查看所有数据库
show databases;
使用mysql数据库
use mysql;
如果数据库mysql存在就drop掉
drop database if exists `mysql`;
创建mydb数据库
create database `mydb`;
授权root用户可以从任意主机使用YOURPASSWORD对mydb数据库做任何操作
grant all privileges on mydb.* to root@‘%.%‘ IDENTIFIED BY "YOURPASSWORD";
撤销root从任意主机操作mydb的权限
revoke all privileges on mydb.* from root@‘%‘;
使grant和revoke授权生效!执行grant或revoke之后再执行!
flush privileges;
查看mydb库中所有数据表
show tables from mydb;
查看mydb库中mytable表的所有列名称,类型,是否为空,默认值,索引等
desc mydb.mytable;
查看mydb库中mytable表的建表SQL语句
show create table mydb.mytable;
查看mydb库中mytable表的所有内容,以每行数据,列名-值的键值对方式查看
select * from mydb.mytable\G;
表mytable改名为mytablenew
alter table mydb.mytable rename mydb.mytablenew;
清空mydb库mytable表的数据,比delete快很多
truncate table mydb.mytable
将数据库mydb1和mydb2以sql语句形式导出到 /data/backup/20120630.sql文件中
mysqldump --opt --user=YOURS --password=YOURS -B "mydb1 mydb2" --max_allowed_packet=1048576 --net_buffer_length= 16384 > /data/backup/20120630.sql
执行文件中的sql语句
source /data/backup/mydb.sql
查看当前MySQL连接
show processlist;
断掉某个客户端连接,ID是show processlist命令输出第一列的值
kill ID;
查看MySQL各种变量值
show variables;
查看MySQL的各种状态,cacti监控MySQL的原理就是定时收集这些状态值绘图
show global status;
查看当前数据版本和日期
select version(),current_date();
查看innodb引擎状态
show engine innodb status;
查看innodb表状态
show table status from test like ‘mydb.mytable‘
--------------------------------------------------------------------------------
创建数据库表90sec:在mysql>后粘贴以下SQL语句,存储引擎为MYISAM,字段id为主键、唯一索引。
CREATE TABLE `90sec` (
`id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`username` VARCHAR( 20 ) NOT NULL ,
`password` CHAR( 32 ) NOT NULL ,
`time` DATETIME NOT NULL ,
`number` FLOAT( 10 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
查看90sec表结构
DESCRIBE 90sec;
从90sec表中检索所有记录
SELECT * FROM 90sec;
从90sec表中检索特定的行:字段username等于abc,字段number等于1,按字段id降序排列
SELECT * FROM zhangyan WHERE username = abc AND number=1 ORDER BY id DESC;
从90sec表中检索指定的字段:username和password
SELECT username, password FROM 90sec;
从90sec表中检索出唯一的不重复记录:
SELECT DISTINCT username FROM 90sec;
插入信息到90sec表
INSERT INTO 90sec (id, username, password, time, number, content) VALUES (, abc, 123456, 2007-08-06 14:32:12, 23.41, hello world);
更新90sec表中的指定信息
UPDATE 90sec SET content = hello china WHERE username = abc;
删除90sec表中的指定信息
DELETE FROM 90sec WHERE id = 1;
清空90sec表
DELETE FROM 90sec;
删除90sec表
DROP TABLE 90sec;
更改表结构,将90sec表username字段的字段类型改为CHAR(25)
ALTER TABLE zhangyan CHANGE username username CHAR(25);
将当前目录下的mysql.sql导入数据库、
SOURCE ./mysql.sql;
--------------------------------------------------------------------------------
创建一个具有root权限,可从任何IP登录的用户80sec,密码为admin
GRANT ALL PRIVILEGES ON *.* TO 80sec@% IDENTIFIED BY admin;
创建一个具有"数据操作"、"结构操作"权限,只能从192.168.1.***登录的用户80ec,密码为admin
GRANT SELECT , INSERT , UPDATE , DELETE , FILE , CREATE , DROP , INDEX , ALTER , CREATE TEMPORARY TABLES , CREATE VIEW , SHOW VIEW , CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON *.* TO 80sec@192.168.1.% IDENTIFIED BY admin;
创建一个只拥有"数据操作"权限,只能从192.168.1.110登录,只能操作win数据库的90sec表的用户80sec,密码为admin
GRANT SELECT , INSERT , UPDATE , DELETE ON win.90sec TO 80sec@192.168.1.110 IDENTIFIED BY admin;
创建一个拥有"数据操作"、"结构操作"权限,可从任何IP登录,只能操作win数据库的用户80sec,密码为admin
GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , INDEX , ALTER , CREATE TEMPORARY TABLES , CREATE VIEW , SHOW VIEW , CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON win.* TO 80sec@% IDENTIFIED BY admin;
删除用户
DROP USER 80sec@%;
MySQL中将字符串aaa批量替换为bbb的SQL语句
UPDATE 表名 SET 字段名 = REPLACE (字段名, aaa, bbb);
修复损坏的表(本例中要修复的表为90sec):
repair table 90sec;udent;
本文出自 “断了的军刀” 博客,请务必保留此出处http://90sec.blog.51cto.com/7404127/1552686
mysql基础操作