侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux mysql命令教程:如何管理MySQL数据库(附实例教程和注意事项)

MySQL是一个流行的开源关系型数据库管理系统,它被广泛用于Web开发等多种环境。mysql命令是MySQL数据库服务的命令行工具,通过它可以执行SQL语句、管理数据库、用户权限等。

Linux mysql命令介绍

mysql(MySQL Command-Line Tool)是一个用于交互地执行SQL语句的命令行界面。它可以让用户查询数据库、运行SQL脚本以及管理用户权限和数据库结构。mysql命令通常用于数据库的维护任务,以及在开发和测试中执行快速的数据库操作。

Linux mysql命令适用的Linux版本

mysql命令在大多数Linux发行版中都是可用的,但是它可能不会预装在某些轻量级或最小化的发行版中。对于不支持的Linux发行版,可以通过其包管理器来安装MySQL客户端。

在CentOS 7中,使用YUM安装:

[linux@bashcommandnotfound.cn ~]$ sudo yum install mysql-client

CentOS 8和其他使用DNF的发行版:

[linux@bashcommandnotfound.cn ~]$ sudo dnf install mysql-client

对于Debian系列的发行版,如Ubuntu,使用APT:

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install mysql-client

Linux mysql命令的基本语法

基本语法格式为:

mysql [options] [database]

Linux mysql命令的常用选项或参数说明

选项描述
-u指定数据库用户
-p提示输入用户的密码
-h指定要连接的主机名
-P指定端口号
--protocol选择要使用的连接协议
-e直接在命令行上执行SQL语句
--help显示帮助信息
--version显示版本信息
-v显示详细的输出(verbose)
--ssl-mode定义SSL使用模式

Linux mysql命令的实例

实例1:连接到MySQL数据库

[linux@bashcommandnotfound.cn ~]$ mysql -u root -p

这会提示你输入root用户的密码,并连接到本地MySQL服务器。

实例2:执行SQL语句

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "SHOW DATABASES;"

执行SHOW DATABASES; SQL命令,列出所有数据库。

实例3:导出数据库到sql文件

[linux@bashcommandnotfound.cn ~]$ mysqldump -u username -p database_name > database_dump.sql

导出database_name数据库到database_dump.sql文件。

实例4:从sql文件中将数据导入数据库

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p database_name < database_dump.sql

database_dump.sql文件导入数据库到database_name

实例5:选择性连接到远程MySQL服务器

[linux@bashcommandnotfound.cn ~]$ mysql -h hostname -u username -p -P 3306

连接到指定主机上的MySQL服务器,端口号为3306。

实例6:创建新的数据库

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "CREATE DATABASE new_database;"

这个命令创建了一个名为new_database的新数据库。

实例7:选择并使用特定数据库

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p
mysql> USE existing_database;

首先登录到MySQL,然后通过USE命令选择existing_database数据库。

实例8:列出特定数据库的所有表

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "USE existing_database; SHOW TABLES;"

连接到MySQL并显示existing_database数据库中的所有表。

实例9:删除数据库

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "DROP DATABASE obsolete_database;"

这个命令将删除名为obsolete_database的数据库。

实例10:更新表中的数据

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "UPDATE table_name SET column_name = 'value' WHERE some_column = 'some_value';"

这个命令将在table_name表中,将column_name列中的值更新为value,但仅限于那些some_column列的值等于some_value的行。

实例11:导入CSV文件到表

[linux@bashcommandnotfound.cn ~]$ mysqlimport --ignore-lines=1 --fields-terminated-by=, --verbose --local -u username -p database_name table_name.csv

这个命令将table_name.csv文件的内容导入到database_name中的table_name表。--ignore-lines=1表示跳过文件的第一行,--fields-terminated-by=指定字段终止符为逗号。

实例12:备份带有特定表的数据库

[linux@bashcommandnotfound.cn ~]$ mysqldump -u username -p --tables table1 table2 > partial_backup.sql

这个命令将只备份table1table2表,而不是整个数据库。

实例13:锁定表以进行读取

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "LOCK TABLES table_name READ;"

这个命令将table_name表锁定为只读模式,其他用户将无法进行写操作。

实例14:打印查询结果而不显示列名

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "SELECT * FROM table_name;" -B

-B选项(batch模式)会打印查询结果,但不包括列名。

实例15:设置字符集

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p --default-character-set=utf8

这个命令指定使用utf8字符集连接到MySQL服务器。

实例16:重置用户密码

[linux@bashcommandnotfound.cn ~]$ mysql -u root -p -e "ALTER USER 'username'@'localhost' IDENTIFIED BY 'NewPassword';"

这个命令会重置username用户的密码为NewPassword

实例17:查看当前所有连接的用户

[linux@bashcommandnotfound.cn ~]$ mysql -u root -p -e "SHOW PROCESSLIST;"

这将显示MySQL服务器上所有当前连接的用户和进程。

实例18:查找特定数据

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "SELECT * FROM table_name WHERE column_name LIKE '%partial_data%';"

这个命令用于在table_name表中查找column_name列包含partial_data文本的所有记录。

实例19:批量插入数据

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p database_name -e "INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2'), ('value3', 'value4');"

此命令将两组值插入到database_name数据库的table_name表的指定列中。

实例20:查看表结构

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "DESCRIBE table_name;"

使用DESCRIBE命令查看table_name表的结构,包括列名、数据类型等。

实例21:删除表中特定的行

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "DELETE FROM table_name WHERE column_name = 'specific_value';"

这个命令将从table_name表中删除所有column_name列值为specific_value的行。

实例22:导出特定表的某些列

[linux@bashcommandnotfound.cn ~]$ mysqldump -u username -p database_name table_name --columns="column1,column2" > table_part.sql

这个命令只导出table_name表中的column1column2列。

实例23:查看当前MySQL用户的权限

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "SHOW GRANTS FOR CURRENT_USER;"

这将显示当前MySQL用户的权限。

实例24:优化表

[linux@bashcommandnotfound.cn ~]$ mysql -u username -p -e "OPTIMIZE TABLE table_name;"

此命令可用于对table_name表进行优化,整理表空间并提高性能。

实例25:转储单个表的结构

[linux@bashcommandnotfound.cn ~]$ mysqldump -u username -p -d -t database_name table_name > table_structure.sql

-d参数表示只转储表结构,-t参数表示省略表创建信息,这个命令只转储database_name数据库中table_name表的结构。

使用这些命令时应注意替换示例中的占位符(如username, NewPassword, database_name, table_name, column_name, specific_value等)为实际的用户名称、新密码、数据库名称、表名称和列名称。确保你有足够的权限来执行特定的操作,并且在操作重要数据之前总是先进行备份。

Linux mysql命令的注意事项

  • 确保你有足够的权限执行特定的mysql命令。
  • 如果收到bash: mysql: command not found的错误,按照上面的安装指令进行安装。
  • 使用-p选项时不要直接在命令行中提供密码,以避免安全风险。
0

评论区