设为首页 收藏本站
查看: 306|回复: 0

[经验分享] mysql基本操作讲解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-11 10:27:52 | 显示全部楼层 |阅读模式
1、登录mysql的几种方式:
#mysql -uroot -p123456    使用socket连接登录;
查看socket文件位置    ps -aux | grep mysqld
1
2
3
[iyunv@localhost ~]# ps aux |grep mysqld
root       941  0.0  0.1   6268  1416 ?        S    21:01   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql     1056  0.0  4.4 392208 45456 ?        Sl   21:01   0:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306



指定socket文件位置的方法:/etc/my.cnf配置文件、编译的时候

#mysql -uroot -p123456 -S /socket文件的路径    使用指定socket文件登录;
# /usr/local/mysql/bin/mysql -uroot -p123456 -S /tmp/mysql.sock

mysql -uroot -p123456 -h127.0.0.1 -P3306    使用ip地址 3306端口连接,端口可以自定义;
# /usr/local/mysql/bin/mysql -uroot -p123456 -h127.0.0.1 -P3306
直接在shell里面执行mysql语句,需要加-e 参数
# mysql -uroot -p123456 -e "use mysql;select host,user from user where user='root'";
spacer.jpg wKiom1VPYr6gO7i9AAE_HVFikEg388.jpg

查看在mysql执行的命令历史  cat /root/.mysql_history   

首先删除文件,然后将文件软连接指向黑洞,防止命令泄露。

ln -s /dev/null /root/.mysql_history   


2、mysql的常用操作:
查看所有的库  show databases;

spacer.jpg wKiom1VPY7Cia8T0AACoqsVyTSM768.jpg
查看某个库的表 use db; show tables;    db为database列出来的库名;
mysql> use discuz;   
mysql> show tables;

查看表的字段 desc tb;        tb为tables列出来的表的名字;
spacer.jpg wKioL1VPZAGglzrBAAIBYXilGBU286.jpg
查看建表语句 show create table tb;    可以复制命令自己建立其他表;可以查看表的默认引擎,以及默认字符集;
只写表名是在本数据库下面,也可以库.表查看其它库的表;
# show create table pre_home_show;
# show create table mysql.user;
ENGINE=MyISAM DEFAULT CHARSET=utf8


查看当前是哪个用户  select user();
查看当前所在的库    select database();

创建库 create database db1;
创建表 create table t1 (`id` int(4), `name` char(40));  
查看数据库版本 select version();
查看mysql状态 show status;   


查看mysql提供的存储引擎  show engines;
spacer.jpg wKiom1VPYnDx9iGcAAS-q5_PNnM944.jpg



修改mysql参数:
查看所有的变量    show variables;
show variables like 'max_connect%';     %代表统配符,与 * 一样,多个任意字符;
show variables like '';     引号里为空,也可以显示所有的变量;引号内可以写关键字加%,查看关键字的项目;

修改参数的值    set global max_connect_errors = 1000;   
mysql> show variables like 'max_connect%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 10    |
| max_connections    | 151   |
+--------------------+-------+
2 rows in set (0.01 sec)
mysql> set global max_connect_errors=10000;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'max_connect%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 10000 |
| max_connections    | 151   |
+--------------------+-------+
2 rows in set (0.00 sec)

查看当前默认的存储引擎 show variables like '%storage_engine%';
spacer.jpg wKioL1VPY9DwmovWAADk2tGL_8E093.jpg
/data/mysql/    目录下面存放的数据库的内容,有数据库名对应的目录;
myisam存储一个文件有3种格式(.frm  .MYD .MYI )

查看mysql队列 show processlist;    show full processlist;显示全部的信息。
spacer.jpg wKioL1VPZ2-jDWZoAAF--RJnKiY575.jpg
创建普通用户并授权
grant all on *.* to user1 identified by '123456';
grant all on db1.* to 'user2'@'10.0.2.100' identified by '111222';
grant all on db1.* to 'user3'@'%' identified by '231222';
更改密码 UPDATE mysql.user SET password=PASSWORD("newpwd") WHERE user='username' ;

查询显示表的行数    select count(*) from mysql.user;    myisam 显示速度比较快;
查询表的所有内容    select * from mysql.db;
条件查询表的内容    select * from mysql.db where host like '10.0.%';
mysql> select * from mysql.db\G;    如显示乱码,需要加\G,列表显示;


更新记录 update db1.t1 set name='aaa' where id=1;  
mysql> update huang.name set name='aaa' where id=1;
Query OK, 0 rows affected (0.01 sec)
Rows matched: 0  Changed: 0  Warnings: 0

删除表的数据    delete form tb where id=1;
清空表 truncate table db1.t1;
删除表 drop table db1.tb1;
删除数据库 drop database db1;
修复表 repair table tb1 [use frm];    [use frm]为索引文件,索引重建一下;

3、mysql备份与恢复
使用mysqldump备份,适合数据量较小的;
备份 mysqldump -uroot -p123456  db > /tmp/1.sql    重定向到一个文件里面;
恢复 mysql -uroot -p123456 db < 1.sql  反向重定向,相当于复制了一个数据库;db必须真实存在;
只备份一个表  mysqldump -uroot -p db tb > 2.sql
恢复一个表    mysql -uroot -p123456 db < 2.sql  
mysqldump -uroot -p123456 -d db tb > 3.sql    只备份表的语句;

备份时指定字符集 mysqldump -uroot -p123456 --default-character-set=utf8  db >1.sql    指定字符集防止乱码;
恢复也指定字符集 mysql -uroot -p123456 --default-character-set=utf8  db  < 1.sql



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-65742-1-1.html 上篇帖子: 导入mysql数据问题:Cannot load from mysql.proc. The table is probably corrupted 下篇帖子: mysql query cache优化 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表