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

[经验分享] mysql配置——库表操作、用户操作

[复制链接]

尚未签到

发表于 2018-10-11 08:39:07 | 显示全部楼层 |阅读模式
  mysql----库表操作
  ## 列出所有的库
  mysql> show databases;
  +--------------------+
  | Database           |
  +--------------------+
  | information_schema |
  | mysql              |
  | test               |
  | wyydb              |
  +--------------------+
  4 rows in set (0.02 sec)
  解释说明:
  红色的三个表是默认存在的
  ## 使用库
  mysql> use mysql;
  Database changed
  解释说明:
  在切换库时可以不加分号,但在执行一条sql语句的时候必须使用分号结束
  show databases;这个分号也不能少
  ## 查看库中所有表
  mysql> show tables;
  ## 查看表字段
  mysql> desc procs_priv;
  ## 查看表创建语句
  mysql> show create table procs_priv\G
  *************************** 1. row ***************************
  Table: procs_priv
  Create Table: CREATE TABLE `procs_priv` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Routine_name` char(64) CHARACTER SET utf8 NOT NULL DEFAULT '',
  `Routine_type` enum('FUNCTION','PROCEDURE') COLLATE utf8_bin NOT NULL,
  `Grantor` char(77) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 NOT NULL DEFAULT '',
  `Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
  KEY `Grantor` (`Grantor`)
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges'
  1 row in set (0.00 sec)
  解释说明:
  \G 以列方式显示;
  \G 既指定了格式也表示结束,此处不需要;(分号)否则会出现ERROR:  No query specified;
  ENGINE=引擎
  DEFAULT CHARSET=默认字符集
  ## 查看当前使用的库
  mysql> select database();
  +------------+
  | database() |
  +------------+
  | mysql      |
  +------------+
  1 row in set (0.00 sec)
  ## 查看当前登录用户
  mysql> select user();
  +----------------------+
  | user()               |
  +----------------------+
  | root@192.168.219.128 |
  +----------------------+
  1 row in set (0.00 sec)
  ## 查看版本
  mysql> select version();
  +-----------+
  | version() |
  +-----------+
  | 5.1.73    |
  +-----------+
  1 row in set (0.00 sec)
  创建
  ## 创建库
  mysql> create database aming;
  Query OK, 1 row affected (0.01 sec)
  ## 进入库
  mysql> use aming;
  Database changed
  ## 创建表
  mysql> create table tab1 (`id` int(4), `name` char(50)) ENGINE=MyISAM DEFAULT CHARSET=gbk;
  Query OK, 0 rows affected (0.07 sec)
  解释说明:
  ``  这是反引号
  设置引擎ENGINE=
  设置默认字符集DEFAULT CHARSET=
  ## 查看库中所有表
  mysql> show tables;
  +-----------------+
  | Tables_in_aming |
  +-----------------+
  | tab1            |
  +-----------------+
  1 row in set (0.00 sec)
  ## 查看表字段
  mysql> desc tab1;
  ## 查看表创建语句
  mysql> show create table tab1\G
  增删改查
  ## 插入数据
  mysql> insert into tab1(id,name) values(1,'aming');    或者 mysql> insert into tab1 values(1,'aming');
  mysql> insert into tab1 values(2,'linux');
  Query OK, 2 row affected (0.00 sec)
  mysql> insert into tab1(id) values(3);
  mysql> insert into tab1(name) values('lili');
  Query OK, 2 row affected (0.00 sec)
  ## 查看表
  mysql> select * from tab1;
  +------+-------+

  |>  +------+-------+
  |    1 | aming |
  |    2 | linux |
  |    3 | NULL  |
  | NULL | lili  |
  +------+-------+
  4 rows in set (0.00 sec)
  ##  修改数据

  mysql> update tab1 set>
  mysql> update tab1 set name='rose' where>  mysql> select * from tab1;
  +------+-------+

  |>  +------+-------+
  |    1 | aming |
  |    2 | linux |
  |    3 | rose  |
  |    4 | lili  |
  +------+-------+
  4 rows in set (0.00 sec)
  ##  删除指定行

  mysql>  delete from tab1 where>  mysql> select * from tab1;
  +------+-------+

  |>  +------+-------+
  |    1 | aming |
  |    2 | linux |
  |    3 | rose  |
  +------+-------+
  3 rows in set (0.00 sec)
  ##  清空数据(不删除表)
  mysql> truncate table tab1;
  Query OK, 0 rows affected (0.00 sec)
  mysql> select * from tab1;
  Empty set (0.00 sec)
  ##  删除表
  mysql> drop table tab1;
  ## 删除库
  mysql> drop database db1;
  mysql----用户操作
  ## 创建用户并授权

  mysql> grant all on wyydb.* to 'user1'@'192.168.219.128'>  ERROR 1044 (42000): Access denied for user 'root'@'192.168.219.128' to database 'wyydb'
  ###############解决办法##################
  ##查看当前登录用户
  ##mysql> select user();
  ##+----------------------+
  ##| user()               |
  ##+----------------------+
  ##| root@192.168.219.128 |
  ##+----------------------+
  ##1 row in set (0.00 sec)
  ##
  ##退出mysql
  ##mysql> quit
  ##
  ##登录mysql
  ##[root@wy ~]# mysql -uroot -p123456
  ##
  ##    查看当前登录用户
  ##mysql> select user();
  ##+----------------+
  ##| user()         |
  ##+----------------+
  ##| root@localhost |
  ##+----------------+
  ##1 row in set (0.00 sec)
  ##
  ##     授权成功

  ##    mysql> grant all on wyydb.* to 'user1'@'192.168.219.128'>  ##     Query OK, 0 rows affected (0.00 sec)
  #############################################
  解释说明:
  授权其实也是创建新的用户
  grant 设置权限
  all 表示所有权限
  on 指定db.table
  to 指定user@host且host可以用%代替表示所有ip(不建议使用,很危险的);192.168.219.%表示这个网段的ip。
  identified by '' 设置密码
  ## 刷新权限
  mysql> flush privileges;
  解释说明:
  创建完用户之后呢,这个权限没有即时生效,因为你的数据可能保存在内存里,还没有到硬盘里,这里需要去刷新一下权限。
  ## 查看当前数据库进程队列
  mysql> show processlist;
  +----+------+-----------+------+---------+------+-------+------------------+

  |>  +----+------+-----------+------+---------+------+-------+------------------+
  |  8 | root | localhost | NULL | Query   |    0 | NULL  | show processlist |
  +----+------+-----------+------+---------+------+-------+------------------+
  1 row in set (0.00 sec)
  解释说明:
  数据库若是很忙的话,它会有很多很多地查询,通过这样查询可以获得队列,让我们知道这个数据库具体在干什么,
  类似于linux中的ps查看进程一样。
  ## 查看所有配置参数
  mysql> show variables;
  解释说明:
  这些参数都可以在my.cnf里去定义的
  ## 筛选信息类似grep
  mysql> show variables like '%timeout%';
  解释说明:
  % 表示通配
  ## 不重启mysql服务修改配置
  mysql> set global max_connections=200;
  Query OK, 0 rows affected (0.00 sec)
  mysql> show variables like 'max_connections';
  +-----------------+-------+
  | Variable_name   | Value |
  +-----------------+-------+
  | max_connections | 200   |
  +-----------------+-------+
  1 row in set (0.00 sec)
  解释说明:
  如果永久生效还需要更改配置文件my.cnf
  ## 查看状态
  mysql> show status;
  ## 查看行
  mysql> select count(*) from mysql.user;
  解释说明:
  InnoDB查看行会很慢,不会记录每次执行此语句都会重新遍历一次;
  MyISAM查看很快,因为已经提前将总数记录在内容中了;
  小提示:
  若遇到mysql启动不了,或者其他错误,去查看一下它的日志,日志在/etc/init.d/mysqld这个文件里的datadir里定义了;我们是放在/data/mysql目录下,有一个与hostname同名,以.err结尾的日志文件,可以去查看错误内容,帮助解决问题。


运维网声明 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.yunweiku.com/thread-620171-1-1.html 上篇帖子: mysql配置——登陆 下篇帖子: mysql配置——备份与恢复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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