mysql>?alter?user?'root'@'localhost'?password?expire?never; Query?OK,?0?rows?affected?(0.00?sec)
mysql>?
最后刷新:
mysql>?flush?privileges; Query?OK,?0?rows?affected?(0.00?sec)
mysql>?
3.增加新用户及授权3.1使用CREATE USER语句创建新用户
mysql>?CREATE?USER?'moonrong'@'localhost'?IDENTIFIED?BY?'QHDbjheb123'; Query?OK,?0?rows?affected?(0.01?sec)
mysql>?
3.2 使用GRANT 语句创建新用户
使用CREATE USER语句创建账户后在USER表中新增一条记录,但是新创建的用户没有任何权限,还需要通过GRANT语句进行赋权。而使用GRANT语句不仅可以创建新用户,还可以在创建的同时对用户授权。
比如mysql命令,上面moonrong用户,它可以在任意主机上登录,同时有查询和插入权限:
mysql>?grant?select,insert?on?*.*?to?'moonrong'@'localhost'?identified?by?'QHDbjheb123'; Query?OK,?0?rows?affected,?1?warning?(0.00?sec)
mysql>?
创建并授权用户权限,grant是推荐的用法,一般格式为:
grant?select?on?数据库.*?to?用户名@登录主机?identified?by?“密码”;
3.3几个grant应用的例子
Example01:
增加一个用户test1密码为abc123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
mysql>?grant?select,insert,update,delete?on?*.*?to?test1@"%"?Identified?by?"abc123"; Query?OK,?0?rows?affected,?1?warning?(0.01?sec)
mysql>?
这个例子权限放的有点大,再看下面的例子。
Example02:
增加一个用户test2密码为abc123,让它只可以在localhost上登录,并可以对数据库odoodb进行查询、插入、修改、删除的操作。
mysql> grant select,insert,update,delete on odoodb.* to test2@localhost identified by 'abc123'; Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>
Example03:
取消test2密码,进行无密码登录:
mysql> grant select,insert,update,delete on odoodb.* to test2@localhost identified by ''; Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>
Example04:
给一个用户test3授予访问odoodb数据库的所有权限,并且仅允许test3在192.168.250.250这个客户端ip登录访问。
mysql>?grant?all?on?odoodb.*?to?test3@192.168.250.250?identified?by?'abc123'; Query?OK,?0?rows?affected,?1?warning?(0.00?sec)
mysql>?
4.MYSQL数据库基础操作4.1创建数据库
一般格式:
create??database??<数据库名>;
下面创建一个odoodb的数据库:
mysql>?create?database?odoodb; Query?OK,?1?row?affected?(0.01?sec)
mysql>?
4.2显示数据库
一般格式:
show databases;
比如,查询当前登录的数据库:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | odoodb | | performance_schema | | sys | +--------------------+ 5 rows in set (0.01 sec)
mysql>
4.3删除数据库
一般格式:
drop database <数据库名>;
比如,删除上面刚建的odoodb数据库:
mysql> drop database odoodb; Query OK, 0 rows affected (0.01 sec)
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
mysql>
当然,在删除之前,可以做判断:
mysql> drop database if exists odoodb; Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>
4.4连接数据库
一般格式:
?use?<数据库名>;
比如,打开odoodb数据库:
mysql> use odoodb; Database changed mysql>
5.MYSQL数据表操作5.1创建表
命令格式:
create table 表名称( 列名称 类型, 列名称 类型, 列名称 类型 )default charset=utf8;
下面创建一个名字为MyClass的表:
mysql> create table MyClass( -> id int(4) not null primary key auto_increment, -> name char(20) not null, -> sex int(4) not null default '0', -> degree double(16,2) -> )default charset=utf8; Query OK, 0 rows affected (0.19 sec)
mysql>
5.2删除数据表
命令格式:
drop table 表名;
比如,删除刚才新建的表:
mysql> drop table MyClass; Query OK, 0 rows affected (0.14 sec)
mysql>
5.3查看表
mysql> show tables; +------------------+ | Tables_in_odoodb | +------------------+ | MyClass | +------------------+ 1 row in set (0.00 sec)
mysql>
5.4表插入数据
命令格式:
insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
Eample:
在表MyClass中插入二条记录, 这二条记录表示:
编号姓名成绩
1
Tom
90.45
2
Joan
88.99
3
Moon
99.5
mysql> insert into MyClass values(1,'Tom',0,90.45),(2,'Joan',0,88.99), (3,'Moon',0, 99.5); Query OK, 3 rows affected (0.08 sec) Records: 3 Duplicates: 0 Warnings: 0
mysql>
5.5查询表中的数据
一种方法:查询表中的所有行一般命令:
select <字段1,字段2,...> from < 表名 > where < 表达式 >
比如,查询上述表中的所有数据:
mysql> select * from MyClass; +----+------+-----+--------+ | id | name | sex | degree | +----+------+-----+--------+ | 1 | Tom | 0 | 90.45 | | 2 | Joan | 0 | 88.99 | | 3 | Moon | 0 | 99.50 | +----+------+-----+--------+ 3 rows in set (0.00 sec)
mysql>
第二种方法:查询前几行数据
比如,上面的例子,要查询前2行的数据:
mysql> select * from MyClass order by id limit 0,2; +----+------+-----+--------+ | id | name | sex | degree | +----+------+-----+--------+ | 1 | Tom | 0 | 90.45 | | 2 | Joan | 0 | 88.99 | +----+------+-----+--------+ 2 rows in set (0.00 sec)
mysql>
5.6删除表中的数据
命令格式:
delete from 表名 where 表达式;
比如,删除上面表中id=2的编号的记录:
mysql> delete from MyClass where id=2; Query OK, 1 row affected (0.07 sec)
mysql>
然后,查看表:
mysql> select * from MyClass; +----+------+-----+--------+ | id | name | sex | degree | +----+------+-----+--------+ | 1 | Tom | 0 | 90.45 | | 3 | Moon | 0 | 99.50 | +----+------+-----+--------+ 2 rows in set (0.00 sec)
mysql>
5.7修改表中数据
命令格式:
update 表名 set 字段=新值,… where 条件;
比如,将moon用户名修改为moonrong:
mysql> update MyClass set name='moonrong' where id=3; Query OK, 1 row affected (0.13 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql>
5.8增加字段
命令格式:
alter table 表名 add 字段 类型 其他;
比如,在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0:
mysql> alter table MyClass add passtest int(4) default '0'; Query OK, 0 rows affected (0.31 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql>
5.9修改表名
命令格式:
rename table 原表名 to 新表名;
比如,在表MyClass名字更改为YouBetterClass:
mysql> rename table MyClass to YouBetterClass; Query OK, 0 rows affected (0.09 sec)
mysql>
6.备份数据库操作
这里主要用到MYSQL自带的工具mysqldump:
[root@localhost?bin]#?./mysqldump Usage:?mysqldump?[OPTIONS]?database?[tables] OR?????mysqldump?[OPTIONS]?--databases?[OPTIONS]?DB1?[DB2?DB3...] OR?????mysqldump?[OPTIONS]?--all-databases?[OPTIONS] For?more?options,?use?mysqldump?--help [root@localhost?bin]#?
mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert语句,即可将对应的数据还原。
6.1导出整个数据库
命令格式:
mysqldump?-u?用户名?-p?数据库名?>?导出的文件名
例:将上面数据库odoodb导出:
[root@localhost?bin]#?./mysqldump?-uroot?-p?odoodb?>?odoodb.sql Enter?password:?root@QHDbjheb123 [root@localhost?bin]#?
6.2导出全部数据库
使用–all-databases 或-A导出全部数据库:
[root@localhost?bin]#?./mysqldump?-uroot?-p?-A?>?all.sql Enter?password:? [root@localhost?bin]#?
6.3导出单张表
命令格式:
?mysqldump?-u?用户名?-p?数据库名?表名>?导出的文件名
比如,前面odoodb数据库中导出MyClass表,这个表后来已改名为:YouBetterClass:
[root@localhost?bin]#?./mysqldump?-uroot?-p?odoodb?YouBetterClass?>?odoodb.youbetterclass.sql Enter?password:? [root@localhost?bin]#
6.4导出数据库结构
这里只导了一个数据库结构:
mysqldump?-u?user_name?-p?-d??--add-drop-table?database_name?>?outfile_name.sql
含义:
-d 没有数据
--add-drop-table在每个create语句之前增加一个drop table
[root@localhost?bin]#?./mysqldump?-uroot?-p?-d?--add-drop-table?odoodb?>?odoodbstru.sql Enter?password:? [root@localhost?bin]#?
(编辑:通辽站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|