搜索
首页数据库mysql教程Mysql常用基本命令汇总及默认账户权限与修改_MySQL

一直只是在浅显利用数据库存储数据,也被windows惯坏了,很多命令使用的时候记不起来,so,换LINUX系统!不再使用GUI管理数据库!也想深入学习下Mysql,从权限管理开始!也就诞生了这篇学习笔记。

修改默认密码

Mysql新安装时默认root密码为空,极不安全!建议安装过后马上就修改。附修改方法:

mysqladmin -u root -p password

接下来按提示输入新密码即可!

命令详解:

mysqladmin -u root -p[oldpass] password newpass

注意oldpass可选,如果root默认密码为空,则不需要输入,如果需要更改前密码,请注意前密码与-p之间不要有空格,否则会报错,另外password和newpass之间以空格分隔。这当然是废话,给初学者看的!

基本命令

登录进入数据库

这个很简单:

mysql -u root -p

你将会看到以下命令提示符,表明正确进入了

mysql>

可以输入help查看帮助信息。记得所有命令加上“;”这是语法规定。

命令解释:

mysql [-u username] [-h host] [-p[password]] [dbname]

如果不输入password,回车后会出现Enter password的提示。如果root密码为空,也不需要输入password,出现Enter password提示后回车即可。

【可以在登录时指定host名以及数据库名。这个host是你远程登陆别人数据库时对方的地址!】

附加一条链接给那些密码改了忘记的人:windows下mysql忘记root密码的解决办法

查看数据库

首先肯定是查看默认数据库了,使用命令:

mysql> show databases;

结果为:

+--------------------+| Database |+--------------------+| information_schema || mysql|| performance_schema |+--------------------+

使用数据库

想使用某个数据库例如mysql这个数据库,使用use命令:

mysql> use mysql;

结果提示数据库改变了表示正确运行。

Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changed

库表基本操作

查看库中的表

进入数据库了,接下来查看表,还是show命令:

mysql> show tables;
+---------------------------+| Tables_in_mysql |+---------------------------+| columns_priv|| db|| event || func|| general_log || help_category || help_keyword|| help_relation || help_topic|| host|| ndb_binlog_index|| plugin|| proc|| procs_priv|| proxies_priv|| servers || slow_log|| tables_priv || time_zone || time_zone_leap_second || time_zone_name|| time_zone_transition|| time_zone_transition_type || user|+---------------------------+24 rows in set (0.00 sec)

好了,我们已经学会了一些简单的数据库操作,接下来我们开始创建自己的数据库,数据表!

创建数据库

简单命令:

create database mydata;

结果为:

Query OK, 1 row affected (0.00 sec)

提示已经成功。接下来我们用查看表命令,show:

mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mydata || mysql|| performance_schema |+--------------------+5 rows in set (0.00 sec)

好了,自己的数据库创建成功,先看看数据库里都有啥?答案肯定是什么都没有!我们查看一下:

mysql> use mydata;Database changedmysql> show tables;Empty set (0.00 sec)

So,接下来创建一个简单的表(注意我们上面已经使用了mydada数据库,接下来创建的表在这个数据库里,我们只能在数据库里创建表):

mysql> create table table_name(name VARCHAR(20), age int);Query OK, 0 rows affected (0.02 sec)mysql> show tables;+------------------+| Tables_in_mydata |+------------------+| table_name |+------------------+1 row in set (0.00 sec)

查看表的结构

成功之后,我们查看表的结构(使用describe):

mysql> describe table_name;+-------+-------------+------+-----+---------+-------+| Field | Type| Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| name| varchar(20) | YES| | NULL| || age | int(11) | YES| | NULL| |+-------+-------------+------+-----+---------+-------+2 rows in set (0.00 sec)

插入数据到表

这时候表里面是没有数据的,插入数据(insert into):【说明:这里只是简单展示,更多详细命令请看官网文档(3000 页)】

mysql> insert into table_name values("The_Third_Wave", 100);Query OK, 1 row affected (0.02 sec)mysql> select * from table_name;+----------------+------+| name | age|+----------------+------+| The_Third_Wave |100 |+----------------+------+1 row in set (0.00 sec)

更新表中数据

mysql> update table_name set age=188 where name="The_Third_Wave";Query OK, 1 row affected (0.00 sec)Rows matched: 1Changed: 1Warnings: 0mysql> select * from table_name;+----------------+------+| name | age|+----------------+------+| The_Third_Wave |188 |+----------------+------+1 row in set (0.00 sec)mysql>

导入数据到表

【待补充】

清空表(delete)

mysql> delete from table_name;Query OK, 1 row affected (0.00 sec)mysql> select * from table_name;Empty set (0.00 sec)

删除数据库或表(drop)

mysql> drop table table_name;Query OK, 0 rows affected (0.00 sec)mysql> show tables;Empty set (0.00 sec)mysql> drop database mydata;Query OK, 0 rows affected (0.00 sec)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql|| performance_schema |+--------------------+4 rows in set (0.00 sec)

权限管理

以下是安装后默认用户组:

mysql> use mysql;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> select Host,User,Password from user;+-----------------------------+------------------+-------------------------------------------+| Host| User | Password|+-----------------------------+------------------+-------------------------------------------+| localhost | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx || xxxxxxxxxxxxxxxxxxxxxxxxxxx | root | || 127.0.0.1 | root | || ::1 | root | || localhost | debian-sys-maint | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |+-----------------------------+------------------+-------------------------------------------+5 rows in set (0.00 sec)

这里面中间三个host对应的root账户密码为空。【备注:不同版本的Mysql不一样,有些都会同时设置密码,不会像上面一样。】

看来我们前面只设置了Host:localhost对应的root账号的密码,我们使用mysql> select current_user();查看下当前登录的用户名:

mysql> select current_user();+----------------+| current_user() |+----------------+| root@localhost |+----------------+1 row in set (0.00 sec)

注意user_name@host_name 这个user_name是用户名称, host_name是你选择连接到服务器的客户机的地址。而你在使用mysql -h host_name 这个host_name说的是服务器地址(上面有说明,注意区别)。

也就是说:比如你有一个msyql数据库在 db.csdn.com , 那你就mysql -u root -h db.csdn.com ,这和你自己的机器一点关系都没有,你的登录账号还是 root@yourPCname

这个可能不好理解,举个例子并练习下创建用户操作。

创建新用户并指定某个IP可以建立连接

实际我的操作是在我的试验机上数据中创建远程访问用户账号(原因是:本机安全第一,我可不想单独还去设置下防火墙,而我的试验机没有防火墙!),目的是提供远程主机(我所用的电脑)访问本机(我的试验机)数据库的权限!【这句话有点绕】,因为默认账号是不可以非本机登录访问的,我用默认root账号连接到我的试验机会报以下错误:

mysql -u root -h 我的试验机IP地址 -pEnter password: ERROR 1045 (28000): Access denied for user 'root'@'这里是我的本机IP地址' (using password: YES)

这样可以理解上面那段话吧?

接下来学习下用户权限设置,以下内容参考的是:MYSQL数据库管理之权限管理----飞鸿无痕

命令详解如下:

GRANT命令使用说明

先来看一个例子,创建一个只允许从本地登录的超级用户feihong,并允许将权限赋予别的用户,密码为test@feihong.111

GRANT ALL PRIVILEGES ON *.* TO feihong@'localhost' IDENTIFIED BY'test@feihong.111' WITH GRANT OPTION;

GRANT命令说明:

ALL PRIVILEGES是表示所有权限,你也可以使用select、update等权限提到的权限。

ON用来指定权限针对哪些库和表。

*.*中前面的*号用来指定数据库名,后面的*号用来指定表名。

TO表示将权限赋予某个用户。

feihong@'localhost'表示feihong用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。注意:这里%有的版本不包括本地,以前碰到过给某个用户设置了%允许任何地方登录,但是在本地登录不了,这个和版本有关系,遇到这个问题再加一个localhost的用户就可以了。

IDENTIFIED BY指定用户的登录密码。

WITH GRANT OPTION这个选项表示该用户可以将自己拥有的权限授权给别人。注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项导致后来该用户不能使用GRANT命令创建用户或者给其他用户授权。

备注:可以使用GRANT重复给用户添加权限,权限叠加,比如你先给用户添加了一个select权限,然后又给用户添加了一个insert权限,那么该用户就同时拥有了select和insert权限。

以下都在我的是实验机上操作!

mysql> GRANT USAGE,SELECT ON *.* TO public@'我的本机IP地址' IDENTIFIED BY 'pbpass' WITH GRANT OPTION;Query OK, 0 rows affected (0.00 sec)

在我的试验机使用以下命令可以查看用户表:

select Host,User,Password from mysql.user;

确定添加正确后我可以在本机远程登陆试验机啦!


以下在本机操作!

我们再次尝试远程连接我的试验机数据库,使用我们在试验机上添加的访问账号去连接!

mysql -u public -h 我的试验机IP地址 -pEnter password: Welcome to the MySQL monitor.Commands end with ; or /g.Your MySQL connection id is 9Server version: 5.6.15-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial)Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.mysql>
成功登陆我的实验室数据库,接下来的操作取决于你的权限,例如我创建的public账号只有访问权限,则这个账号就不能

创建删除了!

我们查看下我的试验机有哪些用户:

mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql|| performance_schema || sakila || test || world|+--------------------+7 rows in set (0.00 sec)mysql> select Host,User,Password from mysql.user;+-----------------+--------+-------------------------------------------+| Host| User | Password|+-----------------+--------+-------------------------------------------+| localhost | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx || 127.0.0.1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx || ::1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx || 本机IP地址    | public | *5067452449A119B7FA902EEDF47385AF750C6297 |+-----------------+--------+-------------------------------------------+5 rows in set (0.00 sec)mysql>

如果你也是pbpass这个密码,你会发现共同点。So,安全很重要,数据库用户权限很重要,这提醒我们,mysql这样的特殊表,不要给其他任何人看到!

安全为本,So,删除哪些不需要的用户吧,等以后需要再添加不迟!

删除用户

注意删除用户不要使用DELETE直接删除,因为使用DELETE删除后用户的权限并未删除,新建同名用户后又会继承以前的权限。正确的做法是使用DROP USER命令删除用户!

drop user 'public'@我的本机IP地址;Query OK, 0 rows affected (0.00 sec)

表示成功,可以再次查看。

更新用户密码

其他的用户要不设置密码,要不删除。怎么设置密码呢?

方法一:mysqladmin

开头已经说了一种方法,即使用以下命令:

mysqladmin -u root -p[oldpass] password newpass

方法二:使用表更新命令

mysql> UPDATE mysql.user SET Password=PASSWORD('新密码') WHERE User='root' and Host='127.0.0.1';Query OK, 1 row affected (0.00 sec)Rows matched: 1Changed: 1Warnings: 0mysql> FLUSH PRIVILEGES;

需要注意一定要使用PASSWORD()函数!要不什么后果自己想。

方法三:set password

mysql> set password for 'root'@'::1'=PASSWORD('新密码');Query OK, 0 rows affected (0.00 sec)mysql>

备注:更新完毕使用FLUSH PRIVILEGES;

命令刷新权限,否则还是原来的密码!

本文由@The_Third_Wave(Blog地址:http://blog.csdn.net/zhanh1218)原创。还有未涉及的,会不定期更新,有错误请指正。

如果你看到这篇博文时发现没有不完整,那是我为防止爬虫先发布一半的原因,请看原作者Blog。

如果这篇博文对您有帮助,为了好的网络环境,不建议转载,建议收藏!如果您一定要转载,请带上后缀和本文地址。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
MySQL:初学者的基本技能MySQL:初学者的基本技能Apr 18, 2025 am 12:24 AM

MySQL适合初学者学习数据库技能。1.安装MySQL服务器和客户端工具。2.理解基本SQL查询,如SELECT。3.掌握数据操作:创建表、插入、更新、删除数据。4.学习高级技巧:子查询和窗口函数。5.调试和优化:检查语法、使用索引、避免SELECT*,并使用LIMIT。

MySQL:结构化数据和关系数据库MySQL:结构化数据和关系数据库Apr 18, 2025 am 12:22 AM

MySQL通过表结构和SQL查询高效管理结构化数据,并通过外键实现表间关系。1.创建表时定义数据格式和类型。2.使用外键建立表间关系。3.通过索引和查询优化提高性能。4.定期备份和监控数据库确保数据安全和性能优化。

MySQL:解释的关键功能和功能MySQL:解释的关键功能和功能Apr 18, 2025 am 12:17 AM

MySQL是一个开源的关系型数据库管理系统,广泛应用于Web开发。它的关键特性包括:1.支持多种存储引擎,如InnoDB和MyISAM,适用于不同场景;2.提供主从复制功能,利于负载均衡和数据备份;3.通过查询优化和索引使用提高查询效率。

SQL的目的:与MySQL数据库进行交互SQL的目的:与MySQL数据库进行交互Apr 18, 2025 am 12:12 AM

SQL用于与MySQL数据库交互,实现数据的增、删、改、查及数据库设计。1)SQL通过SELECT、INSERT、UPDATE、DELETE语句进行数据操作;2)使用CREATE、ALTER、DROP语句进行数据库设计和管理;3)复杂查询和数据分析通过SQL实现,提升业务决策效率。

初学者的MySQL:开始数据库管理初学者的MySQL:开始数据库管理Apr 18, 2025 am 12:10 AM

MySQL的基本操作包括创建数据库、表格,及使用SQL进行数据的CRUD操作。1.创建数据库:CREATEDATABASEmy_first_db;2.创建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入数据:INSERTINTObooks(title,author,published_year)VA

MySQL的角色:Web应用程序中的数据库MySQL的角色:Web应用程序中的数据库Apr 17, 2025 am 12:23 AM

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

mysql:构建您的第一个数据库mysql:构建您的第一个数据库Apr 17, 2025 am 12:22 AM

构建MySQL数据库的步骤包括:1.创建数据库和表,2.插入数据,3.进行查询。首先,使用CREATEDATABASE和CREATETABLE语句创建数据库和表,然后用INSERTINTO语句插入数据,最后用SELECT语句查询数据。

MySQL:一种对数据存储的初学者友好方法MySQL:一种对数据存储的初学者友好方法Apr 17, 2025 am 12:21 AM

MySQL适合初学者,因为它易用且功能强大。1.MySQL是关系型数据库,使用SQL进行CRUD操作。2.安装简单,需配置root用户密码。3.使用INSERT、UPDATE、DELETE、SELECT进行数据操作。4.复杂查询可使用ORDERBY、WHERE和JOIN。5.调试需检查语法,使用EXPLAIN分析查询。6.优化建议包括使用索引、选择合适数据类型和良好编程习惯。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。