目次
修改默认密码
基本命令
登录进入数据库
查看数据库
使用数据库
库表基本操作
查看库中的表
创建数据库
查看表的结构
插入数据到表
更新表中数据
导入数据到表
清空表(delete)
删除数据库或表(drop)
权限管理
创建新用户并指定某个IP可以建立连接
命令详解如下:
删除用户
更新用户密码
方法一:mysqladmin
方法二:使用表更新命令
方法三:set password
ホームページ データベース mysql チュートリアル Mysql常用基本命令汇总及默认账户权限与修改_MySQL

Mysql常用基本命令汇总及默认账户权限与修改_MySQL

May 31, 2016 am 08:46 AM

一直只是在浅显利用数据库存储数据,也被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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQLでインデックスを使用するよりも、フルテーブルスキャンがいつ速くなるのでしょうか? MySQLでインデックスを使用するよりも、フルテーブルスキャンがいつ速くなるのでしょうか? Apr 09, 2025 am 12:05 AM

完全なテーブルスキャンは、MySQLでインデックスを使用するよりも速い場合があります。特定のケースには以下が含まれます。1)データボリュームは小さい。 2)クエリが大量のデータを返すとき。 3)インデックス列が高度に選択的でない場合。 4)複雑なクエリの場合。クエリプランを分析し、インデックスを最適化し、オーバーインデックスを回避し、テーブルを定期的にメンテナンスすることにより、実際のアプリケーションで最良の選択をすることができます。

INNODBフルテキスト検索機能を説明します。 INNODBフルテキスト検索機能を説明します。 Apr 02, 2025 pm 06:09 PM

INNODBのフルテキスト検索機能は非常に強力であり、データベースクエリの効率と大量のテキストデータを処理する能力を大幅に改善できます。 1)INNODBは、倒立インデックスを介してフルテキスト検索を実装し、基本的および高度な検索クエリをサポートします。 2)一致を使用してキーワードを使用して、ブールモードとフレーズ検索を検索、サポートします。 3)最適化方法には、単語セグメンテーションテクノロジーの使用、インデックスの定期的な再構築、およびパフォーマンスと精度を改善するためのキャッシュサイズの調整が含まれます。

Windows 7にMySQLをインストールできますか? Windows 7にMySQLをインストールできますか? Apr 08, 2025 pm 03:21 PM

はい、MySQLはWindows 7にインストールできます。MicrosoftはWindows 7のサポートを停止しましたが、MySQLは引き続き互換性があります。ただし、インストールプロセス中に次のポイントに注意する必要があります。WindowsのMySQLインストーラーをダウンロードしてください。 MySQL(コミュニティまたはエンタープライズ)の適切なバージョンを選択します。インストールプロセス中に適切なインストールディレクトリと文字セットを選択します。ルートユーザーパスワードを設定し、適切に保ちます。テストのためにデータベースに接続します。 Windows 7の互換性とセキュリティの問題に注意してください。サポートされているオペレーティングシステムにアップグレードすることをお勧めします。

INNODBのクラスターインデックスと非クラスターインデックス(セカンダリインデックス)の違い。 INNODBのクラスターインデックスと非クラスターインデックス(セカンダリインデックス)の違い。 Apr 02, 2025 pm 06:25 PM

クラスター化されたインデックスと非クラスター化されたインデックスの違いは次のとおりです。1。クラスター化されたインデックスは、インデックス構造にデータを保存します。これは、プライマリキーと範囲でクエリするのに適しています。 2.非クラスター化されたインデックスストアは、インデックスキー値とデータの行へのポインターであり、非プリマリーキー列クエリに適しています。

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか? 人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか? Mar 21, 2025 pm 06:28 PM

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]

MySQLの大きなデータセットをどのように処理しますか? MySQLの大きなデータセットをどのように処理しますか? Mar 21, 2025 pm 12:15 PM

記事では、MySQLで大規模なデータセットを処理するための戦略について説明します。これには、パーティション化、シャード、インデックス作成、クエリ最適化などがあります。

MySQL:簡単な学習のためのシンプルな概念 MySQL:簡単な学習のためのシンプルな概念 Apr 10, 2025 am 09:29 AM

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

MySQLユーザーとデータベースの関係 MySQLユーザーとデータベースの関係 Apr 08, 2025 pm 07:15 PM

MySQLデータベースでは、ユーザーとデータベースの関係は、アクセス許可と表によって定義されます。ユーザーには、データベースにアクセスするためのユーザー名とパスワードがあります。許可は助成金コマンドを通じて付与され、テーブルはCreate Tableコマンドによって作成されます。ユーザーとデータベースの関係を確立するには、データベースを作成し、ユーザーを作成してから許可を付与する必要があります。

See all articles