您的位置:首页 > 数据库 > MySQL

mysql常用命令二

2016-06-21 08:17 716 查看

三、Mysql命令操作(插入、删除、更新)

# mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sqlMysql导出数据库一个表# mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名# mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sqlMysql导出一个数据库结构# mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql// -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table限制导出条件,不导出表结构,只导出数据Mysql > use search;Mysql > select * from 表名 where lat!=0 into outfile “xxx.sql” // 将lat字段不为0的数据全部导出Msyql > select * from map_drug_store where id>120000 into outfile 'map_drug_store_3.xls';// 限制id>120000的导出到xxx.xlsMysqldump限制导出条件Mysql > /usr/local/mysql/bin/mysqldump -uroot -p search drug_new1 --where="id=39615" > /home/sum/drug_new1.sql或Mysql > /usr/local/mysql/bin/mysqldump -uroot -p search drug_new1 -w"id=39622" > /home/sum/drug_new_2.sql只导出数据结构# mysqldump --opt -d 数据库名 -u root -p > xxx.sql//只导出数据结构,不导出数据

六、数据库导入

source 命令导入Mysql > use 数据库然后使用source命令,后面参数为脚本文件(如这里用到的.sql)mysql> create database xxx;mysql> use xxx;mysql> source /home/sum/wcnc_db.sql另一种方法导入数据库及表# /usr/local/mysql/bin/mysql -uroot -padmin cms_xyxy < /home/sum/cms_090610.sql导入数据库中的某个表# /usr/local/mysql/bin/mysql -uroot -p mima cms_xyxy < /home/sumiao/plastic.sql将一个文件中的数据导入Mysql > use 库名;Mysql > load data infile '/www/drug/search/xysswy0807.txt' into table 表名;导入时指定字符串Mysql > /usr/local/mysql/bin/mysql --default-character-set=gbk -uroot -padmin ixywy < ho.sql

七、数据库导入导出举例

数据导出# mysql -uroot –p>use vpopmail;>select pw_name,pw_name,pw_passwd,pw_dir,pw_dir,pw_domain into outfile 'mailuser.sql' from vpopmail;>exit;在新服务器将数据导入Mysql> LOAD DATA INFILE '/home/mailboxusers.sql' INTO TABLE mailbox FIELDS TERMINATED BY ',' (username,uid,password,maildir,homedir,domain);//只导入上面username,uid..等几个字段的数据

八、找回Mysql密码

忘记mysql的root密码1、kill掉系统里的MySQL进程(千万不敢用下面的方式关闭,你会发现你的数据表损坏):# killall -TERM mysqld(错误)# service mysql stop(正确)2、用以下命令启动MySQL,以不检查权限的方式启动:# /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &3、然后用空密码方式使用root用户登录 MySQL:# /usr/local/mysql/bin/mysql -uroot –p4. 修改root用户的密码;mysql> update mysql.user set password=password("123456") where user="root"; mysql> flush privileges; mysql> quit5、以正常方式启动mysql# ./mysqld_safe –user=mysql &修改root用户密码 (双条件匹配)update mysql.user set password=password("123456") where user="root" and host="localhost";> flush privileges; //更新语句

九、Mysql配置查看及修改

查看数据库最大连接数# cd /usr/local/mysql/bin# ./mysqladmin -uroot -p variables | find "max_connect"设置新的最大连接数为200mysql> set GLOBAL max_connections=200;显示数据库当前连接数Mysql> show processlistMysql查看数据存储引擎# show create table userid;显示当前状态mysql > show status或者# mysqladmin -uroot -p statusmysql远程连接命令如两台服务器70、71,使71服务器的mysql能远程连接70mysql的ypk数据库1、在70数据库添加wyj用户mysql > grant all on ypk.* to wyj@219.232.241.71 identified by 'wyj123' with grant option;mysql > flush privileges;2、在71服务器上远程连接测试# cd /usr/local/mysql/bin# ./mysql -h219.232.241.70 -uwyj –p输入密码即可登陆70数据库。查看数据库里当前数据文件的存放路径mysql> show variables like '%dir%'; +----------------------------+----------------------------+
| Variable_name | Value |
+----------------------------+----------------------------+
| basedir | / |
| character_sets_dir | /usr/share/mysql/charsets/ |
| datadir | /data/mysql/ |
| innodb_data_home_dir | |
| innodb_log_arch_dir | |
| innodb_log_group_home_dir | ./ |
| innodb_max_dirty_pages_pct | 90 |
| slave_load_tmpdir | /tmp/ |
| tmpdir | /tmp/ |
+----------------------------+----------------------------+ 创建表mysql> create table dede_login_db( -> id INT(10) NOT NULL AUTO_INCREMENT primary key, -> text VARCHAR(255) NOT NULL, -> link VARCHAR(255) NOT NULL-> );// AUTO_INCREMENT自动增长

十、Mysql慢查询日志

1、慢日志配置进入mysql查看全局变量mysql> show GLOBAL VARIABLES;
……| log | OFF | | log_bin | ON | | log_bin_trust_function_creators | OFF | | log_error | | | log_queries_not_using_indexes | OFF | | log_slave_updates | OFF | | log_slow_queries | ON | | log_warnings | 1 | | long_query_time | 1 |# SQL查询超时设置long_query_time = 1# 慢日志的文件位置log_slow_queries =/usr /local/mysql/data/host-slow.log# 记录下没有加索引的SQL查询语句log_queries_not_using_indexeslog-queries-not-using-indexes=1 //记录没有使用索引的sql查看以上变量后,在配置文件中添加:# vi /etc/my.conflog_slow_querie=/usr/local/mysql/data/log-slow-queries.loglong_query_time=1重启mysql服务# ./mysqld_safe --defaults-file=/etc/my.cnf &注:有的时候重启mysql,并不生成slow.log日志,需制定配置文件,启动方法如上。2、慢日志查询方法# /usr/local/mysql/bin/mysqldumpslow -s c -t 20 host-slow.log// 访问次数最多的20个sql语句# /usr/local/mysql/bin/mysqldumpslow -s r -t 20 host-slow.log// 返回记录集最多的20个sql# mysqldumpslow -t 10 -s t -g “left join” host-slow.log// 按照时间返回前10条里面含有左连接”left join” 的sql语句删除记录delete from domain(表名) where domain(字段名) = 'sum.com';插入数据insert into mailbox (username,uid,password,maildir,homedir,domain) values('liw@wsn.com.cn','liw','$1$JJg9Z$zI7r0QHx3keM6rT9/u1CC0','wsn.com.cn/liw/Maildir/','wsn.com.cn/liw/','wsn.com.cn');修改数据update mailbox set password='$1$.V6vI$Q4kZ.DFEKHyBhfkMzz3eN.' where username='duzhuang@wsn.com.cn';//修改username为duzhuang的用户的密码 (后面是加的条件)UPDATE 表名 SET 字段名='200';//修改一列数据的值修改数据表名称Mysql > ALTER TABLE tale_name RENAME TO 新表名;

四、Mysql查询操作

查看表中的数据总数mysql> select count(*) from 表名;查看表中最后一条数据select * from 表名order by id desc limit 1;limit 用法mysql > select * from club_ques_dis where qintime > '2008-01-01 00:00:00' and length(qtitle)<10 limit 10,1//从第10条开始,显示1条数据查找> select * from mailbox where username like "yi%";yi开头的usernameMysql显示某字段最大值Mysql > select max(id) from 表名;判断字段所占字符长度Mysql> select * from 表名 where qintime > ‘2008-01-01’ and length(qtitle)<3 limit 1,1;//查看qtitle字段的数据内容,长度小于3查看表中的字段Mysql > desc table_name;或Mysql > show columns from 表名 from 数据库名;如:show columns from mailbox from extmail;Mysql倒序排列id字段数据Mysql > select * from drug_new order by id desc limit 1;查看表的数据结构Mysql> show create table 表名;

查看数据库进程show processlist;查看数据库同步
show slave status\G;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql