install mysql service on centos 7

install

1
2
3
4
$ sudo wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
$ sudo md5sum mysql57-community-release-el7-9.noarch.rpm
$ sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
$ sudo yum install mysql-server

start mysql

1
2
3
4
5
$ sudo systemctl start mysqld
$ sudo systemctl status mysqld
$ sudo grep 'temporary password' /var/log/mysqld.log
$ sudo mysql_secure_installation
$ mysqladmin -u root -p version

复制一下temporary password这一步的输出,在做安全配置的时候会用上。
如果密码配置正确,mysqld正常运行那么version这步会输出版本信息
关于配置的东西,以后再说。(逃

login mysql service

1
$ mysql -u root -P8306 -p

-P参数指定远端服务器mysqld监听的端口,中间不要留空格,如果不指定,默认端口3306

add user and configure priviledges

1
2
mysql > insert into mysql.user(host,user,password,select_priv,insert_priv,update_priv)
values ('localhost','meow',password('meow123456'),'Y','Y','Y');

host用来指定user可以从哪台设备登陆,可以是localhost,或具体的ip,如果允许任意远程主机登陆就用’%’代替。
插入用户数据的时候可以指定权限,当然也可以现在不指定,以后通过grant来指定。

1
mysql > grant select,insert,update,delete,create,drop on somedatabase.* to 'meow'@'localhost' identified by 'meow123456';

通过grant all privileges on 可以开放所有权限,on后面指定具体的db文件,可以在这里指定用户可以访问到的数据库。
通过以下指令可以知道所有可以分配的权限。

1
mysql > show columns from mysql.user like '%priv';

管理mysql的命令

use AirMonitor;切换到具体的某个数据库
show databases;显示当前登陆用户有权访问的所有数据库
show tables;显示当前数据库中的所有表
show columns from device_0001;显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
show index from device_0001\G;显示表的详细索引信息,包括primary key,\G类似于格式化显示
show table status like

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
mysql> show columns from device_0001;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| time | datetime | NO | | NULL | |
| lng | varchar(45) | NO | | NULL | |
| lat | varchar(45) | NO | | NULL | |
| alt | varchar(45) | NO | | NULL | |
| CO | double | YES | | NULL | |
| SO2 | double | YES | | NULL | |
| NO2 | double | YES | | NULL | |
| O3 | double | YES | | NULL | |
| PM25 | double | YES | | NULL | |
| PM10 | double | YES | | NULL | |
| temp | double | YES | | NULL | |
| humi | double | YES | | NULL | |
| pressure | double | YES | | NULL | |
| VOCs | double | YES | | NULL | |
| CO2 | double | YES | | NULL | |
| LEL | double | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
17 rows in set (0.00 sec)
mysql> show index from device_0001\G;
*************************** 1. row ***************************
Table: device_0001
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: id
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
1 row in set (0.00 sec)

基本操作

创建数据库,如果存在则不创建,并且创建的时候指定编码utf-8
1
CREATE DATABASE IF NOT EXISTS VoidSoul DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
删除数据库(或删除数据表)
1
2
drop database VoidSoul;
drop table VSTable;
切换当前数据库
1
use VoidSoul;
创建数据表并指定字段
1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS `vstable`(
`id` INT UNSIGNED AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`age` INT UNSIGNED,
`registry_time` DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

其中,表名和字段名周围的符号是(Esc下面那个),不是单引号

插入数据和查询数据
1
2
3
insert into vstable (2,'miao',24,now());
select * from vstable;
select * from vstable where age>20;
更新数据
1
update vstable set age=25 where name='miao';
删除数据
1
delete from vstable where name='miao';
用like子句查询,例:提取以ao为结尾的名字的记录
1
select * from vstable where name like '%ao';

待续