MySQL使用操作
Posted !Vincent
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL使用操作相关的知识,希望对你有一定的参考价值。
简介
mysql是一种DBMS,即它是一种数据库软件。DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS。前者用于桌面用途,通常不用于高端或更关键应用。
MySQL是基于客户机——服务器的数据库。客户机——服务器应用分为两个不同的部分。服务器部分是负责所有数据访问和处理的软件。这个软件运行在称为数据服务器的计算机上。客户机是与用户打交道的软件。
使用MySQL
连接数据库
在操作系统命令提示符下输入 mysql 将出现如下提示:
C:\\Users\\greenhat>mysql Welcome to the MySQL monitor. Commands end with ; or \\g. Your MySQL connection id is 9 Server version: 5.6.38 MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type \'help;\' or \'\\h\' for help. Type \'\\c\' to clear the current input statement. mysql>
如上述界面提示即打开了数据库的连接。也可用root用户打开:mysql -u root -p。这是会提示输入密码,如果安装时未设置密码按回车即可。如果软件安装时未设置环境变量,需要在所安装目录的/bin下输入mysql方可启动。
注意:
a.命令输入在mysql>之后;
b.命令用;或\\g结束;
c.输入quit或exit退出命令行实用程序。
选择数据库
最初连接到MySQL时,没有数据库打开供你使用。这时可输入 SHOW DATABASES 查看已有的数据库:
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | student | | students | | test | +--------------------+ 6 rows in set (0.02 sec)
从已有的数据库中选择一个数据库。可用关键字USE:
mysql> USE students; Database changed mysql>
使用SHOE TABLES 查看数据库中存在的表:
mysql> SHOW TABLES; +--------------------+ | Tables_in_students | +--------------------+ | student1 | | students | | teacher | | teacher1 | +--------------------+ 4 rows in set (0.08 sec)
接下来可用SQL语句来对数据库进行新建表格等操作。
用户管理与维护
MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权限,既不能多也不能少。例如多数用户只需对表进行读和写,某些用户(管理员)可能需要处理用户账号的权限。MySQL创建一个名为root的用户账号,它对整个MySQL服务具有完全的控制。你可能已经试过用root账号登陆,不过在现实世界的日常工作中,绝对不能随便使用root。应该创建一系列的账号,有的用于管理,有的供用户使用,有的供开发人员使用,等等。
MySQL用户账号和信息存储在名为 mysql 的MySQL数据库中:
mysql> USE mysql; Database changed mysql> SELECT user FROM user; +------+ | user | +------+ | root | +------+
创建用户账号
创建一个新的用户账号,使用CREATE USER语句,如下:
mysql> CREATE USER jack; Query OK, 0 rows affected (0.48 sec)
这时再列出用户就能看到我们刚才新建的用户了。我们也可以在创建用户时添加口令,使用IDENTIFIED BY PASSWORD,如下:
mysql> CREATE USER jackson IDENTIFIED BY \'123456\'; Query OK, 0 rows affected (0.06 sec)
重命名一个用户账号时,使用RENAME USER语句,如下:
mysql> RENAME USER jack TO ben; Query OK, 0 rows affected (0.04 sec)
删除用户账号
删除一个用户账号,使用DROP USER语句,如下:
mysql> DROP USER ben; Query OK, 0 rows affected (0.00 sec)
设置访问权限
在创建账号后,必须接着分配访问权限。新创建的账号没有访问权限。它们能登陆MySQL,但不能看到数据,不能执行任何数据操作。
为看到赋予用户账号的权限,使用SHOW GRANTS FOR 语句,如下:
mysql> SHOW GRANTS FOR jackson; +------------------------------------------------------------------------------- -------------------------+ | Grants for jackson@% | +------------------------------------------------------------------------------- -------------------------+ | GRANT USAGE ON *.* TO \'jackson\'@\'%\' IDENTIFIED BY PASSWORD \'*6BB4837EB74329105 EE4568DDA7DC67ED2CA2AD9\' | +------------------------------------------------------------------------------- -------------------------+ 1 row in set (0.04 sec)
输出结果显示用户jackson有一个权限USAGE ON *.* 。USAGE表示根本没有权限。
为设置权限,使用GRANT语句。GRANT要求你至少给出以下信息:
a.要授予的权限;
b.被授予访问权限的数据库和表。
c.用户名。
下面给出GRANT的用法例子:
mysql> GRANT SELECT ON students.* TO jackson; Query OK, 0 rows affected (0.09 sec)
此GRANT允许用户jackson在students.*(students数据库的所有表)上使用SELECT 。通过授权SELECT访问权限,用户jackson对students数据库中所有的数据具有只读访问权限。
查看更改后的用户的权限:
mysql> SHOW GRANTS FOR jackson; +------------------------------------------------------------------------------- -------------------------+ | Grants for jackson@% | +------------------------------------------------------------------------------- -------------------------+ | GRANT USAGE ON *.* TO \'jackson\'@\'%\' IDENTIFIED BY PASSWORD \'*6BB4837EB74329105 EE4568DDA7DC67ED2CA2AD9\' | | GRANT SELECT ON `students`.* TO \'jackson\'@\'%\' | +------------------------------------------------------------------------------- -------------------------+ 2 rows in set (0.04 sec)
GRANT的饭操作为REVOKE,用来撤销特定的权限。如下:
mysql> REVOKE SELECT ON students.* FROM jackson; Query OK, 0 rows affected (0.01 sec)
GRANT和REVOKE可在几个层次上控制访问权限:
a.整个服务器,使用GRANT ALL 和 REVOKE ALL ;
b.整个数据库,使用ON database.* ;
c.特定的表,使用ON database.table ;
d.特定的列;
e.特定的存储过程。
更多具体的权限可查看相关官方文档。
更改口令
更改用户口令,可使用SET PASSWORD 语句。如下:
mysql> SET PASSWORD FOR jackson=Password(\'654321\'); Query OK, 0 rows affected (0.05 sec)
新口令必须传递到Password()函数进行加密。
备份数据
像所有数据一样,MySQL的数据也必须经常备份。下面列出可进行备份的方法:
a.私用命令行实用程序mysqldump转存所有数据库内容到某个外部文件。在进行常规备份前这个程序应该正常运行,以便正确的备份转存文件。
b.可用命令行实用程序mysqlhotcopy从一个数据库复制所有数据。
c.可以使用MySQL的BACKUP TABLE 或SELECT INTO OUTFILE 转储所有数据到外部文件。这两条语句都接受将要创建的系统文件名,此文件必须存在,否则会出错。数据库可用RESTORE TABLE 来复原。
数据库维护
MySQL提供一系列的语句,可以用来保证数据库正确和正常运行。
ANALYZE TANLE用来检查表键是否正确。如下:
mysql> ANALYZE TABLE students; +-------------------+---------+----------+----------+ | Table | Op | Msg_type | Msg_text | +-------------------+---------+----------+----------+ | students.students | analyze | status | OK | +-------------------+---------+----------+----------+ 1 row in set (1.12 sec)
此外还可以用CHECH TABLE用来针对多个问题进行检查。
参考文献
《MySQL必知必会》Ben Forta,人民邮电出版社。
以上是关于MySQL使用操作的主要内容,如果未能解决你的问题,请参考以下文章