linux-数据库(mysql)

1.下载mysql-server

CentOS7带有MariaDB而不是MySQL,如果需要安装mysql需要先添加mysql社区repo

sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
如果是root用户就不用sudo了
yum insatll mysql-server

image

2.启动服务

centos7:systemctl start mysql.service
centos6:/etc/init.d/mysqld start

image
登录mysql默认是没有密码,用户名root

3.配置文件/etc/my.cnf

配置信息端口、数据文件存放目录等
image

4.数据库操作

数据库操作:
1.查看数据库:show databases;  
2.切换数据库:use 数据库名;  
3.删除数据库:drop database 数据库名;
数据表操作:
1.查看数据库中表信息:show tables;  
2.查看表结构:desc 表名;  
3.删除数据表:drop table 库.表名;
注意结尾必须有分号,不然会认为语句未结束会一直等待输入

image
image

1.创建数据库:create database 库名;
eg. create database myclass;
2.创建表:create table 表名 (列名1 类型1,列名2,类型2,约束);
eg.create table myclass.userlist (id int,name char(11),primary key(id));
alter:修改表结构 alter table 表名 add|drop|modify|change 字段 属性
3.给表[指定位置]增加新的列:alter 库.表名 add 列名 列类型 [after 列名];
eg.alter table myclass.userlist add age int after name;
4.删除表中列 alter table 表名 drop 列名;
eg. alter table myclass.userlist drop test;
注意:删库、表、字段全是drop,delete只负责删除表中的内容

image
image
image
image

5.sql语句

1.查询语句[按条件查询][只显示多少行]  
select * from 表 where 条件 判断符号 "值" limit 数量;
2.写入数据,插入全字段可以不写列名
insert into 表名(库.表)[(列名1,列名2...)] values ("值1","值2"...)
3.删除数据,一般根据主键删除
delete from 表名 where 条件;
4.修改数据,如果不加条件会修改所有值
update 表名 set "字段"="新值" where 条件;
注意值需要加引号,不然会认为是字段,数字可以不加

6.数据库备份与还原

数据库里每张表都包含3个文件,3个文件组装在一起才是这张表记录数据、时间、属性

数据库备份:
1.备份数据库中某个表:mysqldump [OPTIONS] database [tables]
2.备份多个数据库:mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
3.备份全部数据库:mysqldump [OPTIONS] --all-databases [OPTIONS]
eg.mysqldump [-u root -p密码] myclass userlist >/tmp/myclass_userlist.sql;
把myclass数据库中userlist表备份到/tmp/myclass_userlist.sql文件,文件命名自己能明白就好结尾最好用sql表示是sql语句,如果数据库有密码的话加上-u-p选项

image
image

数据库还原:
1.mysql [-u root -p 密码] 数据库 <备份数据表文件;
    2.use 数据库;source 备份数据表文件
eg.mysql -u root myclass </tmp/myclass_userlist.sql

image

7.远程连接数据库

授权:grant
授权查看权限:
grant select on 库名.* to "用户名"@"允许登录的主机ip" identifiled by "密码";授权用户从哪台主机ip使用哪个密码登录数据库中的哪个表有查看权限
授权所有权限:
grant all on 库名.* to "用户名"@"允许远程登录的ip" identifiled by "密码";
eg. grant select on myclass.userlist to "tom"@"192.168.1.100" identified by "123456";授权用户tom可以使用密码123456在192.168.1.100主机上远程登录myclass.userlist,具有查看权限

客户机验证:
mysql -u 用户名 -p 密码 -h mysql服务器ip
查看用户权限:
show GRANTS FOR 用户名@允许远端登录的ip
撤销用户权限:
revoke select on 库名.* from 用户名@允许登录的ip;
revoke all on 库名.* from 用户名@允许登录的ip;
删除用户:
drop user 用户名@允许登录的ip;

image

posted @ 2021-11-12 10:32  qxll  阅读(172)  评论(0)    收藏  举报