本文使用docker运行MySQL,并进行简单的操作。
运行容器
本文使用的MySQL为官方镜像,版本为5.7。下载镜像命令:
docker pull mysql:5.7
使用下面的命令运行容器,并设置root密码为123456。
run --name hi-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
映射端口:
run --name hi-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
进入容器:
docker exec -it hi-mysql bash
如用docker-compose,可在 command 中指定变量:
command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci', '--explicit_defaults_for_timestamp=false', '--lower_case_table_names=1']
连接 mysql
容器内:
mysql -uroot -p123456
宿主机:
先安装 mysql 客户端:
apt install mysql-client-core-5.7
连接容器:
mysql -h 127.0.0.1 -P 3306 -u root -p123456
远程:
mysql -h 120.97.3.9 -P 3305 -u root -p123456
操作
连接成功提示:
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.20 MySQL Community Server (GPL)
Copyright (c) 2000, 2017, 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> 后即可输入sql语句。sql语句使用分号“;”作为结束符号。
退出mysql命令行:
exit
查看数据库:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
创建数据库,名称为mydb:
mysql> CREATE DATABASE mydb;
选择mydb数据库:
mysql> USE mydb;
创建数据表user:
mysql> CREATE TABLE `user` (
`id` bigint(20) NOT NULL,
`email` varchar(255) DEFAULT NULL,
`first_name` varchar(255) DEFAULT NULL,
`last_name` varchar(255) DEFAULT NULL,
`username` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
// id值为自增
mysql> CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`email` varchar(255) DEFAULT NULL,
`first_name` varchar(255) DEFAULT NULL,
`last_name` varchar(255) DEFAULT NULL,
`username` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
查看user数据表字段内容:
mysql> DESC user;
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id | bigint(20) | NO | PRI | NULL | |
| email | varchar(255) | YES | | NULL | |
| first_name | varchar(255) | YES | | NULL | |
| last_name | varchar(255) | YES | | NULL | |
| username | varchar(255) | YES | | NULL | |
+------------+--------------+------+-----+---------+-------+
5 rows in set (0.02 sec)
往user表插入数据:
mysql> INSERT INTO `user` (`id`, `email`, `first_name`, `last_name`, `username`)
VALUES(0,'li@latelee.org','Late','Lee','latelee');
// 自增情况下,不输入ID
mysql> INSERT INTO `user` (`email`, `first_name`, `last_name`, `username`)
VALUES('li@latelee.org','Late','Lee','foobar');
// 注:网上有说法id默认自增为2,但测试未发现
查看已经插入了的数据:
mysql> SELECT * FROM user;
+----+----------------+------------+-----------+----------+
| id | email | first_name | last_name | username |
+----+----------------+------------+-----------+----------+
| 0 | li@latelee.org | Late | Lee | latelee |
+----+----------------+------------+-----------+----------+
1 row in set (0.00 sec)
更新数据:
mysql> UPDATE user SET email='you@163.com' WHERE username='foobar';
mysql> UPDATE user SET email='you11@163.com', first_name='Kent' WHERE username='foobar';
删除user表所有数据:
mysql> DELETE FROM user;
删除user数据表:
mysql> DROP TABLE user;
删除数据库mydb:
mysql> DROP DATABASE mydb;
查询倒数10条记录:
SELECT top 10 * FROM [dbo].[RealTimeData] ORDER BY i desc; // sqlserver
SELECT * FROM RealTimeData ORDER BY id desc limit 10; // mysql
中文:
mysql> CREATE TABLE `userc` (
`信息id` bigint(20) NOT NULL AUTO_INCREMENT,
`邮箱地址` varchar(255) DEFAULT NULL,
`名` varchar(255) DEFAULT NULL,
`姓` varchar(255) DEFAULT NULL,
`姓名` varchar(255) DEFAULT NULL,
PRIMARY KEY (`信息id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> desc userc;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| 信息id | bigint(20) | NO | PRI | NULL | auto_increment |
| 邮箱地址 | varchar(255) | YES | | NULL | |
| 名 | varchar(255) | YES | | NULL | |
| 姓 | varchar(255) | YES | | NULL | |
| 姓名 | varchar(255) | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)