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
这个命令将只备份table1
和table2
表,而不是整个数据库。
实例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
表中的column1
和column2
列。
实例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
选项时不要直接在命令行中提供密码,以避免安全风险。
评论区