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>
创建删除了!
我们查看下我的试验机有哪些用户:
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。
如果这篇博文对您有帮助,为了好的网络环境,不建议转载,建议收藏!如果您一定要转载,请带上后缀和本文地址。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die volle Tabellenscannung kann in MySQL schneller sein als die Verwendung von Indizes. Zu den spezifischen Fällen gehören: 1) das Datenvolumen ist gering; 2) Wenn die Abfrage eine große Datenmenge zurückgibt; 3) wenn die Indexspalte nicht sehr selektiv ist; 4) Wenn die komplexe Abfrage. Durch Analyse von Abfrageplänen, Optimierung von Indizes, Vermeidung von Überindex und regelmäßiger Wartung von Tabellen können Sie in praktischen Anwendungen die besten Auswahlmöglichkeiten treffen.

Ja, MySQL kann unter Windows 7 installiert werden, und obwohl Microsoft Windows 7 nicht mehr unterstützt hat, ist MySQL dennoch kompatibel damit. Während des Installationsprozesses sollten jedoch folgende Punkte festgestellt werden: Laden Sie das MySQL -Installationsprogramm für Windows herunter. Wählen Sie die entsprechende Version von MySQL (Community oder Enterprise) aus. Wählen Sie während des Installationsprozesses das entsprechende Installationsverzeichnis und das Zeichen fest. Stellen Sie das Stammbenutzerkennwort ein und behalten Sie es ordnungsgemäß. Stellen Sie zum Testen eine Verbindung zur Datenbank her. Beachten Sie die Kompatibilitäts- und Sicherheitsprobleme unter Windows 7, und es wird empfohlen, auf ein unterstütztes Betriebssystem zu aktualisieren.

Die Volltext-Suchfunktionen von InnoDB sind sehr leistungsfähig, was die Effizienz der Datenbankabfrage und die Fähigkeit, große Mengen von Textdaten zu verarbeiten, erheblich verbessern kann. 1) InnoDB implementiert die Volltext-Suche durch invertierte Indexierung und unterstützt grundlegende und erweiterte Suchabfragen. 2) Verwenden Sie die Übereinstimmung und gegen Schlüsselwörter, um den Booleschen Modus und die Phrasesuche zu unterstützen. 3) Die Optimierungsmethoden umfassen die Verwendung der Word -Segmentierungstechnologie, die regelmäßige Wiederaufbauung von Indizes und die Anpassung der Cache -Größe, um die Leistung und Genauigkeit zu verbessern.

Der Unterschied zwischen Clustered Index und nicht klusterer Index ist: 1. Clustered Index speichert Datenzeilen in der Indexstruktur, die für die Abfrage nach Primärschlüssel und Reichweite geeignet ist. 2. Der nicht klusterierte Index speichert Indexschlüsselwerte und -zeiger auf Datenzeilen und ist für nicht-primäre Schlüsselspaltenabfragen geeignet.

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

In der MySQL -Datenbank wird die Beziehung zwischen dem Benutzer und der Datenbank durch Berechtigungen und Tabellen definiert. Der Benutzer verfügt über einen Benutzernamen und ein Passwort, um auf die Datenbank zuzugreifen. Die Berechtigungen werden über den Zuschussbefehl erteilt, während die Tabelle durch den Befehl create table erstellt wird. Um eine Beziehung zwischen einem Benutzer und einer Datenbank herzustellen, müssen Sie eine Datenbank erstellen, einen Benutzer erstellen und dann Berechtigungen erfüllen.

MySQL unterstützt vier Indextypen: B-Tree, Hash, Volltext und räumlich. 1.B-Tree-Index ist für die gleichwertige Suche, eine Bereichsabfrage und die Sortierung geeignet. 2. Hash -Index ist für gleichwertige Suche geeignet, unterstützt jedoch keine Abfrage und Sortierung von Bereichs. 3. Die Volltextindex wird für die Volltext-Suche verwendet und ist für die Verarbeitung großer Mengen an Textdaten geeignet. 4. Der räumliche Index wird für die Abfrage für Geospatial -Daten verwendet und ist für GIS -Anwendungen geeignet.

MySQL und Mariadb können koexistieren, müssen jedoch mit Vorsicht konfiguriert werden. Der Schlüssel besteht darin, jeder Datenbank verschiedene Portnummern und Datenverzeichnisse zuzuordnen und Parameter wie Speicherzuweisung und Cache -Größe anzupassen. Verbindungspooling, Anwendungskonfiguration und Versionsunterschiede müssen ebenfalls berücksichtigt und sorgfältig getestet und geplant werden, um Fallstricke zu vermeiden. Das gleichzeitige Ausführen von zwei Datenbanken kann in Situationen, in denen die Ressourcen begrenzt sind, zu Leistungsproblemen führen.
