shenzhang 发表于 2018-10-11 08:39:07

mysql配置——库表操作、用户操作

  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
  ### 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]
查看完整版本: mysql配置——库表操作、用户操作