菜鸟科技网

Linux下如何执行MySQL命令?

在Linux系统中执行MySQL命令是数据库管理和开发中的常见操作,涵盖了从连接数据库、执行查询到管理用户等多个方面,以下是详细的操作指南和注意事项。

Linux下如何执行MySQL命令?-图1
(图片来源网络,侵删)

连接MySQL数据库

在Linux终端执行MySQL命令前,需先建立与MySQL服务器的连接,基本语法为:

mysql -h主机名 -u用户名 -p密码

参数说明:

  • -h:指定MySQL服务器的主机名或IP地址,本地连接可省略或使用localhost
  • -u:指定连接的用户名,如root
  • -p:提示输入密码,若直接在命令中写密码(如-p123456),可能存在安全风险,建议不写密码,在交互界面输入。

示例(本地连接):

mysql -u root -p

输入正确密码后,将进入MySQL命令行界面,提示符为mysql>

Linux下如何执行MySQL命令?-图2
(图片来源网络,侵删)

执行SQL查询

连接成功后,可直接输入SQL语句执行查询,需注意SQL语句以分号()

查看数据库列表

SHOW DATABASES;

执行结果将返回MySQL服务器中所有数据库的名称。

选择数据库

USE 数据库名;

选择test_db数据库:

USE test_db;

若切换成功,会提示Database changed

Linux下如何执行MySQL命令?-图3
(图片来源网络,侵删)

查看表结构

DESCRIBE 表名;

或简写为:

DESC 表名;

查询表数据

SELECT * FROM 表名 WHERE 条件;

查询users表中年龄大于20的用户:

SELECT * FROM users WHERE age > 20;

使用脚本文件批量执行SQL

若需执行多条SQL语句或复杂脚本,可将SQL语句保存为.sql文件(如backup.sql),通过以下方式执行:

登录后执行

mysql -u root -p < backup.sql

系统会提示输入密码,随后执行文件中的所有SQL语句。

不登录直接执行

mysql -u root -p密码 -h localhost 数据库名 < backup.sql

注意:直接在命令中写密码可能被历史命令记录,建议使用配置文件或环境变量管理密码。

常用管理命令

创建数据库

CREATE DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

创建用户并授权

CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'主机';
FLUSH PRIVILEGES;

创建用户dev_user并授予test_db数据库的所有权限:

CREATE USER 'dev_user'@'localhost' IDENTIFIED BY 'DevPass123!';
GRANT ALL PRIVILEGES ON test_db.* TO 'dev_user'@'localhost';
FLUSH PRIVILEGES;

备份数据库

使用mysqldump工具:

mysqldump -u 用户名 -p 数据库名 > 备份文件.sql

备份test_db数据库:

mysqldump -u root -p test_db > test_db_backup.sql

恢复数据库

mysql -u 用户名 -p 数据库名 < 备份文件.sql

常见问题与解决

忘记MySQL root密码

解决步骤:

  1. 停止MySQL服务:
    sudo systemctl stop mysql
  2. 跳过权限表启动:
    sudo mysqld_safe --skip-grant-tables &
  3. 无密码登录并修改密码:
    mysql -u root
    UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';
    FLUSH PRIVILEGES;
  4. 重启MySQL服务:
    sudo systemctl restart mysql

解决中文乱码问题

若查询结果出现中文乱码,需确保:

  • 数据库、表、字段字符集为utf8mb4
  • Linux终端字符集与MySQL一致,可通过以下命令检查:
    echo $LANG

    若为en_US.UTF-8,则支持UTF-8;若需修改,可执行:

    export LANG=zh_CN.UTF-8

相关问答FAQs

Q1: 如何在Linux下查看MySQL的版本信息?
A1: 可通过以下两种方式查看:

  1. 登录MySQL后执行:
    SELECT VERSION();
  2. 或在终端直接执行:
    mysql -V

Q2: 如何定期自动备份MySQL数据库?
A2: 可使用crontab设置定时任务,每天凌晨2点备份test_db数据库:

  1. 编辑crontab:
    crontab -e
  2. 添加以下内容:
    0 2 * * * /usr/bin/mysqldump -u root -p'密码' test_db | gzip > /backup/test_db_$(date +\%Y\%m\%d).sql.gz

    注意:密码可能被明文记录,建议使用MySQL配置文件(如.my.cnf)存储凭据以提高安全性。

分享:
扫描分享到社交APP
上一篇
下一篇