Mysql数据库:
部署mysql服务
安装:
[root@localhost ~]# yum install -y mariadb mariadb-devel mariadb-server
开启服务:
[root@localhost ~]# systemctl restart mariadb
初始化mysql:
[root@localhost ~]# mysql_secure_installation
本地登录mysql:
[root@localhost ~]# mysql -u root (-p密码) //如果没有设置密码可以不加-p参数
>show databases; //查看库
>create database School; //创建库
**Query OK,1 row affected (0.00 sec)
>use School //切换库
**Database changed**
>create table Score( //创建表
->ID int primary key,
->Name varchar(20),
->Birthday Datetime,
->Sex char(10),
->Password char(64)
->);
**Query OK,0 row affected (0.00 sec)
>show tables; //查看有哪些表
>insert into Score(ID,Name,Birthday,Sex,Password) //向表里添加内容
->values(‘1’,’suser1’,’1999-6-1’,’female’,’suser1’),
->(‘2’,’suser2’,’2000-9-1’,’male’,’suser2’)
->;
**Query OK, 2 rows affected (0.00 sec)
**Records: 2 Duplicates: 0 Warnings: 0**
>select * from Score order by id limit 0,2; //查询id列的前两行
>select * from Score; //查询Score表中的内容
>delete from Score where ID='1 '; //从Score中删除ID等于1的内容
>drop table Score; //删除Score表
>drop database School; //删除School库
管理数据库
创建用户:
>create user 'a'@'localhost' identified by '1234'; //创建a用户赋予密码1234
修改密码:
[root@localhost ~]# mysqladmin -uroot password 123 //修改root初始密码为123
>set password for root@localhost = password(‘123’); //修改root密码为123
赋权:
-
GRANT命令的授权操作常用方案:
命令 作用 GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名 对某个特定数据库中的表单给予授权 GRANT 权限 ON 数据库.* TO 用户名@主机名 对莫格特定数据库中的所有表单给予授权 GRANT 权限 ON . TO 用户名@主机名 对所有数据库及所有表单给予授权 GRANT 权限 1,权限2 ON 数据库.* TO 用户名@主机名 对某个数据库中的所有表单给予多个授权 GRANT ALL PRIVILEGES ON . TO 用户名@主机名 对所有数据库及所有表单给予全部授权 - 例子
>GRANT SELECT,UPDATE,DELETE,INSERT on mysql.user to test@localhost; //对test用户给予查询、更新、删除、插入权限
>> show grants for test@localhost; //查询test用户的权限
创建数据库与表单
- 常用的数据库表单管理命令:
用法 | 作用 |
---|---|
CREATE database 数据库名称; | 创建新的数据库 |
DESCRIBE 表单名称; | 描述表单 |
UPDATE 表单名称 SET attribute=新值 WHERE attribute > 原始值; | 更新表单中的数据 |
USE 数据库名称; | 指定使用的数据库 |
SHOW databases; | 显示当前已有的数据库 |
SHOW tables; | 显示当前数据库中的表单 |
SELECT * FROM 表单名称; | 从表单中选中某个记录值 |
DELETE FROM 表单名 WHERE attribute=值; | 从表单中删除某个记录值 |
开启日志:
-
在my.cnf中加入
log=日志路径
远程登录数据库:
远程连接数据库:
[root@client ~]# mysql -h [Mysql服务器IP] -P 3306 -u root -p
Enter password:123
授予用户远程访问权限:
>grant all privileges on *.* to 'root'@'%' identified by '123'; //任何主机登录数据库使用root用户登录都有任何特权,并设置密码为123
在MySQL8.0以后的版本不适合此方法
主从服务:
配置之前需要配置适合的IP地址和hosts文件
主从服务器统一配置:
[root@mysql1/2~]# yum install -y mariadb mariadb-server
[root@mysql1/2~]# systemctl start mariadb
[root@mysql1/2~]# systemctl enable mariadb
主服务器:
[root@mysql1~]# mysql_secure_installation //初始化mysql
设置密码
允许远程登录:Disallow root login remotely?[Y/n ]**n**
[root@mysql1~]# cp /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.bak
[root@mysql1~]# vi /etc/my.cnf.d/server.cnf
在[mysqld]下添加
[mysqld] log_bin = mysql-bin binlog_ignore_db = mysql server_id = 30
[root@mysql1~]# scp /etc/my.cnf.d/server.cnf mysql2:/etc/my.cnf.d
[root@mysql1~]# mysql -uroot -p[密码]
>grant all privileges on *.* to root@'%' identified by "[密码]";
>grant replication slave on *.* to 'user'@'mysql2' identified by "[密码]";
>exit
[root@mysql1~]# systemctl restart mariadb
从服务器:
[root@mysql2 ~]# vi /etc/my.cnf.d/server.cnf
server_id = 30改为40
[root@mysql2~]# mysql_secure_installation //初始化mysql
设置密码
允许远程登录:Disallow root login remotely?[Y/n ]**n**
[root@mysql2~]# mysql -uroot -p[密码]
>change master to master_host='mysql1',master_user='user',master_password='[密码]';
>exit
[root@mysql2~]# systemctl restart mariadb
同步数据:
[root@mysql2~]# mysql -uroot -p[密码]
>start slave;
>show slave status\G //查看是否连接到主mysql服务器