如何从命令行使用MySQL / MariaDB

虽然PhpMyAdmin等工具非常容易与MySQL / MariaDB数据库交互,但有时必须直接从命令行访问数据库。 本文将触及进入数据库和一些常见任务,但不会在SQL语法,数据库管理或其他高级主题上提供完整的教育。 本指南中的示例适用于CentOS 7和MariaDB,如我们WordPress VPS图像中包含,而是应该在我们的CPANEL VPSS,LAMP堆栈等上工作。 此页面假定您有 使用SSH连接到服务器.

提示指示应从Bash命令行输入的内容, > 提示位于MySQL本身内部。

通过命令行完成的常见MySQL任务

登录到MySQL数据库

要登录数据库作为root用户,请使用以下命令:

mysql -u root -p

输入root密码。

重置您的MySQL密码

在CentOS 7上:

systemctl stop mariadb
mysqld_safe --skip-grant-tables --skip-networking &
MySQL -u root

明文使用mysql;更新用户设置密码=密码("插入扫描号"),其中用户='root';其中'插入通道'是真正的密码齐平特权;出口

systemctl stop mariadb
systemctl start mariadb

(基于Systemd的Linux Distrs可能具有类似的命令,具体取决于它们是否运行实际MySQL或MariaDB;其他Init系统将不同)

在下面运行命令并输入密码后,您将以提示呈现,告诉您程序真正运行的程序(MariaDB)和数据库:

mysql -u root -p 
MariaDB [(none)]>

列出您的数据库

发出显示数据库; 命令,如下所示,查看所有数据库。 一个例子如下所示:

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| MySQL |
| performance_schema |
| tutorials |
+--------------------+
4 rows in set (0.00 sec)

使用"使用"命令的切换数据库:

MariaDB [(none)]> use tutorials;
Database changed
MariaDB [tutorials]>

"show"命令还用于列出数据库中的表:

MariaDB [mysql]> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |

进行任何更改之前,请务必进行备份

mysqldump. 要强烈建议在继续使用本指南之前备份数据库。

mysqldump database name > databasebackup.sql

用您的实际数据库名称和数据库备份替换数据库名称,其中包含要创建和结尾的文件的名称 .sql. 作为保存数据库的文件类型。 这将允许您 使用mysqldump还原MySQL数据库 随时从此备份文件中获取。

我们建议您从未公开访问的目录运行此命令,以便无法从您的帐户下载数据库,而无需登录命令行或ftp。 确保更改您的目录 /根 要么 /家 或文件系统中需要适当凭据的其他位置。

示例:重置WordPress管理员密码

在继续操作之前,请参阅上述说明,了解如何备份数据库。

步骤1: 您必须知道WordPress安装正在使用什么数据库,用户名和密码。 这些位于WordPress安装的根目录中的wp-config.php中,名称为DB_NAME,DB_USER和DB_PASSWORD:

// ** MySQL settings ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'appdb' );
/** MySQL database username */
define( 'DB_USER', 'appdb_user' );
/** MySQL database password */
define( 'DB_PASSWORD', '...' );

第二步: 有了这些信息,您可以修改 如何重设WordPress管理员密码 并从命令行执行相同操作:

mysql -u appdb_user -p
Enter password:
Welcome to the MariaDB monitor. Commands end with; or \g

.....

MariaDB [(无)]>

第三步: 切换到appdb数据库:

MariaDB [(none)]> use appdb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

数据库已更改

第四步: 并显示表格:

MariaDB [appdb]> show tables;
+-----------------------+
| Tables_in_appdb    |
+-----------------------+
| wp_commentmeta  |
| wp_comments         |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------+
12 rows in set (0.00 sec)
MariaDB [appdb]>

第五步: 然后,我们可以从WP_Users表中选择User_Login和User_pass,看看我们将更新的行:

MariaDB [appdb]> SELECT user_login,user_pass FROM wp_users;
+--------------+------------------------------------+
| user_login | user_pass |
+--------------+------------------------------------+
| hstwnd_admin | $P$BMCbERthYHPMJK.do2SUcxjAy567jo0 |
+--------------+------------------------------------+
1 row in set (0.00 sec)

第六步: 这使我们可以使用设置新密码

MariaDB [appdb]> UPDATE wp_users SET user_pass=MD5('newpassword') WHERE user_login = 'hstwnd_admin';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

第七步: 我们可以再次使用相同的SELECT看到新的密码哈希

MariaDB [appdb]> SELECT user_login,user_pass FROM wp_users;
+--------------+----------------------------------+
| user_login | user_pass |
+--------------+----------------------------------+
| hstwnd_admin | 5e9d11a14ad1c8dd77e98ef9b53fd1ba |
+--------------+----------------------------------+
1 row in set (0.00 sec)

要离开,我们要"退出"

MariaDB [appdb]> quit
Bye

而已!设置了新的管理员密码。

6

发表回复