一般数据库用 phpMyAdmin 管理,操作起来更直观。偶尔可能会用到命令,记录一下。
MySQL 状态管理
/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
路径与实际环境有关,请按实际情况修改。
登陆 MySQL
执行 mysql
即可进入 mysql 命令行管理。如不能进入,先进入 mysql 执行文件所在目录,如:cd usr/bin,再运行 mysql 命令就可以进入。
[root@ ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3541
Server version: 5.5.59-log Source distribution
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
或者指定用户登录,语法:mysql -u用户名 -p,回车,输入用户密码
如使用 root 用户登陆,执行 mysql -uroot -p,回车后提示输入密码,输入 MySQL root 用户密码,如:12345,然后回车即可进入到 mysql 中,mysql 提示符是:mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP
如何查看 MySQL 当前存储引擎?
一般情况下,mysql 默认提供多种存储引擎,可以通过下面命令查看:
检查 mysql 目前提供什么存储引擎:
mysql> show engines;
检查 mysql 当前默认存储引擎:
mysql> show variables like '%storage_engine%';
检查某个表用了什么引擎:
mysql> show create table 表名;
MySQL 增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如:增加一个用户 user1 密码为 password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除权限。首先用以root用户连入 mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆 mysql,则将 localhost 改为 "%"
如果你不想 user1 有密码,可以再执行一个命令将密码去掉:
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
如果需要所有权限,执行:
grant ALL on *.* to user1@"%" identified by "myPassword";
MySQL 操作数据库
登录到 mysql,在 mysql 提示符下运行下列命令,每个命令以分号结束。
显示数据库列表
show databases;
缺省有两个数据库:mysql和 test。 mysql 库存放着 mysql 系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
显示 tset 库中的数据表
use test;
show tables;
mysql> use test;
Database changed
mysql> show tables;
+-----------------------+
| Tables_in_test |
+-----------------------+
| ts_commentmeta |
| ts_comments |
| ts_links |
| ts_options |
| ts_postmeta |
| ts_posts |
| ts_term_relationships |
| ts_term_taxonomy |
| ts_termmeta |
| ts_terms |
| ts_usermeta |
| ts_users |
+-----------------------+
12 rows in set (0.00 sec)
显示数据表结构
语法:describe 表名;
如上面 test 数据库中 ts_links 的数据表结构
describe ts_links;
mysql> describe ts_links;
+------------------+---------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+---------------------+------+-----+---------------------+----------------+
| link_id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| link_url | varchar(255) | NO | | | |
| link_name | varchar(255) | NO | | | |
| link_image | varchar(255) | NO | | | |
| link_target | varchar(25) | NO | | | |
| link_description | varchar(255) | NO | | | |
| link_visible | varchar(20) | NO | MUL | Y | |
| link_owner | bigint(20) unsigned | NO | | 1 | |
| link_rating | int(11) | NO | | 0 | |
| link_updated | datetime | NO | | 0000-00-00 00:00:00 | |
| link_rel | varchar(255) | NO | | | |
| link_notes | mediumtext | NO | | NULL | |
| link_rss | varchar(255) | NO | | | |
+------------------+---------------------+------+-----+---------------------+----------------+
13 rows in set (0.00 sec)
建库与删库
create database 库名;
drop database 库名;
数据库建表
use 库名;
create table 表名(字段列表);
drop table 表名;
清空表中记录
delete from 表名;
显示表中记录
select * from 表名;
MySQL 导出和导入数据
导出数据
注意:不要在 mysql 提示符里面运行
mysqldump -opt test > mysql.test
将数据库 test 数据库导出到 mysql.test 文件(文本文件)
mysqldump -uroot -p123456 --databases dbname > mysql.dbname
把数据库 dbname 导出到文件 mysql.dbname。
mysqldump -uroot -p123456 --all-databases > mysql.all
把所有数据库导出到文件 mysql.all。
导入数据
mysqlimport -uroot -p123456 < mysql.dbname
将文本数据导入数据库
文本数据字段数据之间用 tab 分隔。
use test;
load data local infile "文件名" into table 表名;
使用 SHOW 找出服务器上当前存在什么数据库
mysql> SHOW DATABASES;
创建一个数据库 MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
选择创建的数据库
mysql> USE MYSQLDATA;
(按回车键出现Database changed 时说明操作成功!)
查看当前数据库中存在什么表
mysql> SHOW TABLES;
创建一个数据库表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
显示表的结构
mysql> DESCRIBE MYTABLE;
往表中加入记录
mysql> insert into MYTABLE values ("hyq","M");
用文本方式将数据装入数据库表中(例如 D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
导入 .sql 文件命令(例如 D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
删除表
mysql>drop TABLE MYTABLE;
清空表
mysql>delete from MYTABLE;
更新表中数据
mysql>update MYTABLE set sex="f" where name="hyq";
备份数据库
mysqldump -u root 库名>xxx.data
连接到远程主机 MySQL
假设远程主机 IP 为:110.110.110.110,用户名为 root,密码为 abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
退出 MySQL
命令: exit (回车)
原文:Life in USA - VPS上使用ssh mysql命令
Comments:0