찾다
데이터 베이스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으로 문의하세요.
Composite Index와 여러 단일 열 인덱스를 언제 사용해야합니까?Composite Index와 여러 단일 열 인덱스를 언제 사용해야합니까?Apr 11, 2025 am 12:06 AM

데이터베이스 최적화에서 쿼리 요구 사항에 따라 인덱싱 전략을 선택해야합니다. 1. 쿼리에 여러 열이 포함되고 조건 순서가 수정되면 복합 인덱스를 사용하십시오. 2. 쿼리에 여러 열이 포함되어 있지만 조건 순서가 고정되지 않은 경우 여러 단일 열 인덱스를 사용하십시오. 복합 인덱스는 다중 열 쿼리를 최적화하는 데 적합한 반면 단일 열 인덱스는 단일 열 쿼리에 적합합니다.

MySQL에서 느린 쿼리를 식별하고 최적화하는 방법은 무엇입니까? (느린 쿼리 로그, Performance_schema)MySQL에서 느린 쿼리를 식별하고 최적화하는 방법은 무엇입니까? (느린 쿼리 로그, Performance_schema)Apr 10, 2025 am 09:36 AM

MySQL 느린 쿼리를 최적화하려면 SlowQueryLog 및 Performance_Schema를 사용해야합니다. 1. SlowQueryLog 및 Set Stresholds를 사용하여 느린 쿼리를 기록합니다. 2. Performance_schema를 사용하여 쿼리 실행 세부 정보를 분석하고 성능 병목 현상을 찾고 최적화하십시오.

MySQL 및 SQL : 개발자를위한 필수 기술MySQL 및 SQL : 개발자를위한 필수 기술Apr 10, 2025 am 09:30 AM

MySQL 및 SQL은 개발자에게 필수적인 기술입니다. 1.MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템이며 SQL은 데이터베이스를 관리하고 작동하는 데 사용되는 표준 언어입니다. 2.MYSQL은 효율적인 데이터 저장 및 검색 기능을 통해 여러 스토리지 엔진을 지원하며 SQL은 간단한 문을 통해 복잡한 데이터 작업을 완료합니다. 3. 사용의 예에는 기본 쿼리 및 조건 별 필터링 및 정렬과 같은 고급 쿼리가 포함됩니다. 4. 일반적인 오류에는 구문 오류 및 성능 문제가 포함되며 SQL 문을 확인하고 설명 명령을 사용하여 최적화 할 수 있습니다. 5. 성능 최적화 기술에는 인덱스 사용, 전체 테이블 스캔 피하기, 조인 작업 최적화 및 코드 가독성 향상이 포함됩니다.

MySQL 비동기 마스터 슬레이브 복제 프로세스를 설명하십시오.MySQL 비동기 마스터 슬레이브 복제 프로세스를 설명하십시오.Apr 10, 2025 am 09:30 AM

MySQL 비동기 마스터 슬레이브 복제는 Binlog를 통한 데이터 동기화를 가능하게하여 읽기 성능 및 고 가용성을 향상시킵니다. 1) 마스터 서버 레코드는 Binlog로 변경됩니다. 2) 슬레이브 서버는 I/O 스레드를 통해 Binlog를 읽습니다. 3) 서버 SQL 스레드는 데이터를 동기화하기 위해 Binlog를 적용합니다.

MySQL : 쉽게 학습하기위한 간단한 개념MySQL : 쉽게 학습하기위한 간단한 개념Apr 10, 2025 am 09:29 AM

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) 데이터베이스 및 테이블 작성 : CreateAbase 및 CreateTable 명령을 사용하십시오. 2) 기본 작업 : 삽입, 업데이트, 삭제 및 선택. 3) 고급 운영 : 가입, 하위 쿼리 및 거래 처리. 4) 디버깅 기술 : 확인, 데이터 유형 및 권한을 확인하십시오. 5) 최적화 제안 : 인덱스 사용, 선택을 피하고 거래를 사용하십시오.

MySQL : 데이터베이스에 대한 사용자 친화적 인 소개MySQL : 데이터베이스에 대한 사용자 친화적 인 소개Apr 10, 2025 am 09:27 AM

MySQL의 설치 및 기본 작업에는 다음이 포함됩니다. 1. MySQL 다운로드 및 설치, 루트 사용자 비밀번호를 설정하십시오. 2. SQL 명령을 사용하여 CreateAbase 및 CreateTable과 같은 데이터베이스 및 테이블을 만듭니다. 3. CRUD 작업을 실행하고 삽입, 선택, 업데이트, 명령을 삭제합니다. 4. 성능을 최적화하고 복잡한 논리를 구현하기 위해 인덱스 및 저장 절차를 생성합니다. 이 단계를 사용하면 MySQL 데이터베이스를 처음부터 구축하고 관리 할 수 ​​있습니다.

InnoDB 버퍼 풀은 어떻게 작동하며 성능에 중요한 이유는 무엇입니까?InnoDB 버퍼 풀은 어떻게 작동하며 성능에 중요한 이유는 무엇입니까?Apr 09, 2025 am 12:12 AM

innodbbufferpool은 데이터와 색인 페이지를 메모리에로드하여 MySQL 데이터베이스의 성능을 향상시킵니다. 1) 데이터 페이지가 버퍼 풀에로드되어 디스크 I/O를 줄입니다. 2) 더러운 페이지는 정기적으로 디스크로 표시되고 새로 고침됩니다. 3) LRU 알고리즘 관리 데이터 페이지 제거. 4) 읽기 메커니즘은 가능한 데이터 페이지를 미리로드합니다.

MySQL : 초보자를위한 데이터 관리의 용이성MySQL : 초보자를위한 데이터 관리의 용이성Apr 09, 2025 am 12:07 AM

MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.

See all articles

핫 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 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구