MySQL5.7安装配置与基本操作

安装
#https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
yum install -y https://repo.mysql.com/mysql57-community-release-el7.rpm
yum install -y https://repo.mysql.com/mysql80-community-release-el7.rpm
yum -y install yum-utils
yum-config-manager
yum repolist all | grep mysql
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
yum repolist enabled | grep mysql
yum install -y mysql-community-server
启动与登陆
service mysqld start
systemctl enable mysqld
grep 'temporary password' /var/log/mysqld.log
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'sydi6DG@DF78@ff9';
#查询
show variables like "%connections%";
配置
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
lower-case-table-names=0
max-connections=5000
max-connect-errors = 5000
sql-mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
wait-timeout = 1814400
interactive-timeout = 1814400

open-files-limit=65535 
innodb-buffer-pool-size=2G 
max-allowed-packet=500M
#如果修改了mysql的存储路径记得加上客户端的读取sock的路径
[client]
socket=/opt/mysql/mysql.sock
mysql5.7修改初始密码
设置简单密码需要修改两个全局参数:
mysql> 
set global validate_password_policy=0;
set global validate_password_length=1;
SET PASSWORD = PASSWORD('123456');   #localhost登录root密码
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'adminFG1@3';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.%' IDENTIFIED BY "Bwdwfi.1test";    #192.168.%登录root密码
5.7 创建用户与库
set global validate_password_policy=0;
set global validate_password_length=1;
CREATE DATABASE `im` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON `im`.* TO 'im'@'127.0.0.1' IDENTIFIED BY 'test';

CREATE DATABASE `DB` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON `DB`.* TO 'USER'@'192.168.%' IDENTIFIED BY 'PASSWD';
查看MYSQL数据库中所有用户
mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
mysql> SELECT DISTINCT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') AS query FROM mysql.user;   (方便查询权限)
查看数据库中具体某个用户的权限
mysql>show grants;
mysql> show grants for 'root'@'localhost';
mysql> select * from mysql.user where user='root' \\G
删除某用户的登陆权限
mysql> DELETE FROM mysql.user WHERE User="root" and Host="%"
flush privileges;
删除用户某操作权限:
revoke all on `ivg_flatform`.* from 'dev'@'%';
flush privileges;
增加用户权限
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
//创建用户并赋予root权限,WITH GRANT OPTION 就是具有将权限传递给第三方的权利.表示'monry'可以将'ALL PRIVILEGES'赋予其它用户

GRANT USAGE ON *.* TO 'dummy'@'localhost' identified by '密码';
//创建用户赋予登陆权限
GRANT SELECT ON `ivg_flatform`.* TO 'dev'@'%';
//赋予某库select权限
GRANT ALL PRIVILEGES ON `ivg_flatform`.* TO 'dev'@'%';
//赋予某库全部权限

例如:GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.210' IDENTIFIED BY 'ivgivgivg'

CREATE DATABASE `announce` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `announce`.* TO 'announce_dev'@'%' IDENTIFIED BY 'dbksq7zn';

CREATE DATABASE `account_db` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `ad_analyze` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `gm` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `ivg_flatform` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `account_db`.* TO 'account_server'@'%' IDENTIFIED BY 'dwqzrpsn';
GRANT ALL PRIVILEGES ON `ad_analyze`.* TO 'ad_analyze_dev'@'%' IDENTIFIED BY 'fuqodnfv';
GRANT ALL PRIVILEGES ON `gm`.* TO 'gm_dev'@'%' IDENTIFIED BY 'dyevaksv';
GRANT ALL PRIVILEGES ON `ivg_flatform`.* TO 'flatform'@'%' IDENTIFIED BY 'rbflspqn';
日志相关
MySQL开启general_log跟踪数据执行过程 (增加mysql日志记录登陆等所有操作)
mysql>set global general_log_file='/tmp/general.log'; 
# 开启general log模式
mysql>set global general_log=on; 
# 关闭general log模式
mysql>set global general_log=off;
查询
show global variables like "%genera%";
永久修改:添加到my.cnf中(重启mysql生效)
general_log=1
general_log_file='/tmp/general.log';

开启二进制日志
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 0
max_binlog_size         = 1000M
开启慢查询 (5.6)
slow_query_log  = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1
log-queries-not-using-indexes = 1
检查:mysqldumpslow -s r -t 10 /var/log/mysql/mysql-slow.log

错误日志
log_error = /var/log/mysql/error.log
库操作
1、、创建数据库
命令:create database <数据库名>
例如:建立一个名为xhkdb的数据库
mysql> create database xhkdb;
mysql>  CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql>  CREATE DATABASE `ipms` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
2、显示所有的数据库
命令:show databases (注意:最后有个s)
mysql> show databases;
3、删除数据库
命令:drop database <数据库名>
例如:删除名为 xhkdb的数据库
mysql> drop database xhkdb;
4、连接数据库
命令: use <数据库名>
例如:如果xhkdb数据库存在,尝试存取它:
mysql> use xhkdb;
屏幕提示:Database changed
5、当前选择(连接)的数据库
mysql> select database();
6、当前数据库包含的表信息:
mysql> show tables; (注意:最后有个s)
7.列出mysql当前连接在执行的sql语句
show full processlist
表操作,操作之前应连接某个数据库
1、建表
命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);
例如,建立一个名为MyClass的表,

mysql> create table MyClass(
 id int(4) not null primary key auto_increment,
 name char(20) not null,
 sex int(4) not null default '0',
 degree double(16,2));
2、获取表结构
命令: desc 表名,或者show columns from 表名
mysql> desc MyClass;
mysql> show columns from MyClass;
3、删除表
命令:drop table <表名>
例如:删除表名为MyClass 的表
mysql> drop table MyClass;
4、插入数据
命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
例如,往表 MyClass中插入二条记录, 这二条记录表示:编号为1的名为Tom的成绩为96.45, 编号为2 的名为Joan 的成绩为82.99, 编号为3 的名为Wang 的成绩为96.5.
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
5、查询表中的数据
1)、查询所有行
命令: select <字段1,字段2,...> from < 表名 > where < 表达式 >
例如:查看表MyClass 中所有数据
mysql> select * from MyClass;
2)、查询前几行数据
例如:查看表MyClass 中前2行数据
mysql> select * from MyClass order by id limit 0,2;
6、删除表中数据
命令:delete from 表名 where 表达式
例如:删除表MyClass中编号为1 的记录
mysql> delete from MyClass where id=1;
7、修改表中数据:update 表名 set 字段=新值,… where 条件
mysql> update MyClass set name='Mary' where id=1;
7、在表中增加字段:
命令:alter table 表名 add字段类型 其他;
例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0
mysql> alter table MyClass add passtest int(4) default '0'
8、更改表名:
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改为YouClass
mysql> rename table MyClass to YouClass;
9、字段类型
1.INT[(M)] 型: 正常大小整数类型
2.DOUBLE[(M,D)] [ZEROFILL] 型: 正常大小(双精密)浮点数字类型
3.DATE 日期类型:支持的范围是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列
4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度
5.BLOB TEXT类型,最大长度为65535(2^16-1)个字符。
6.VARCHAR型:变长字符串类型
1.连接数据库
格式:mysql [-h host_name][-u user_name][-p password]
参数说明:
    [-h host_name]:数据库主机的地址(主机名或ip地址),默认localhost.
    [-u user_name]:登录unix/linux的用户名,当指定一个不存在的用户名时,mysql视其为guest用户,使用guest用户不需要口令.
    [-p password]:mysql用户登录的密码,系统初始root密码为空.
    注意:mysql的user和linux下的user相互独立,互不影响,一般linux用户最多8个字符,mysql最多16个。同时,mysql有自己的口令加密系统。
2.修改密码:
   ⑴mysql>use mysql;
      mysql>update user set password=password('new_password') where user='用户名';
      mysql>flush privileges;
      注意:使用flush privileges命令使密码生效。
   ⑵mysql>set password [for user]=password('new_password');
      [for user]为空,默认更改当前用户的密码;
3.删除匿名用户
      mysql>use mysql;
      mysql>delete from user where user='';
      mysql>flush privileges;
4.创建用户
      mysql>use database_name;
      mysql>grant all privileges on database_name.* to 用户名@localhost identified by '密码';
      mysql>flush privileges;
      说明:创建用户名,同时赋予该用户名可以访问database_name数据库中所有表。
      注意:使用grant为一个不存在的用户授予某些权限时,mysql会首先自动创建给用户。
5.创建用户(不指定库)
      mysql>use database_name;
      mysql>insert into mysql.user(Host,User,Password) values("localhost","用户名",password("1234"));
      mysql>flush privileges;
6.给用户分配最小权限
       mysql>grant select on 数据库名.表名 to 用户名@localhost
      mysql>identified by '用户名';
      说明:该用户只对指定数据库中指定表的select权限。
7.msyql的数据备份
      ⑴备份数据库
          mysqldump -add-locks 数据库名>数据库名.sql
      ⑵恢复数据库
          drop database 数据库名;
          create database 数据库名;
          mysql 数据库名<数据库名.sql;
      ⑶备份数据库中表
          mysqldump -add-locks 数据库名 表名>表名.sql
      ⑷恢复数据库中的表
          mysql 数据库名<表名.sql
. 概述 5. 卸载MySQL数据库 6 2.1 备份数据库 6 2.2 卸载MySQL数据库 6 2.2.1 检查MySQL服务并关闭服务进程 6 2.2.2 查找MySQL安装目录并彻底删除 6 2.2.3 删除MySQL配置文件 7 2.2.4 删除MySQL用户以及用户组 7. 安装MySQL数据库 9 3.1 安装MySQL数据库 9 3.1.1 下载MySQL安装包 9 3.1.2 上传并解压MySQL安装包 9 3.1.3 添加系统MySQL组和MySQL用户 10 3.1.4 安装MySQL数据库 10 3.1.5 启动MySQL服务和添加开机启动MySQL服务 11 3.1.6 修改MySQL的root用户密码 13 3.1.7MySQL客户端放到默认路径。 13 3.2 配置MySQL数据库远程访问权限 13 3.2.1 进入 mysql 14 3.2.2 使用mysql数据库 14 3.2.3 查看用户表 14 3.2.4 创建远程登录用户并授权 15 3.2.5 强制刷新权限 15 3.3 恢复备份的数据库 15. MySQL数据库数据迁移 16 4.1 迁移前准备 16 4.1.1 停止MySQL数据库服务 16 4.1.2 创建数据库迁移目录 16 4.2 数据迁移 17 4.2.1 复制数据库数据到迁移目录 17 4.2.2 修改配置并启动服务 17. Mysql 数据目录存放位置更改 19 六. MySQL主从配置 20 6.1 基本条件 20 6.2 安装MySQL数据库 20 6.3 主机配置 20 6.3.1 修改my.cnf配置文件 20 6.3.2 初始化bin-log日志 21 6.4 从机配置 21 6.4.1 修改my.cnf配置文件 21 6.4.2 添加同步主机配置 22 七. MySQL互为主从配置 24 7.1 基本条件 24 7.2 安装MySQL数据库 24 7.3 主机A配置 24 7.3.1 修改my.cnf配置文件 24 7.3.2 给主机B赋予mysql权限 25 7.3.3 初始化bin-log日志 26 7.4 主机B配置 27 7.4.1 修改my.cnf配置文件 27 7.4.2 给主机A赋予mysql权限 28 7.4.3 初始化bin-log日志 29 7.5 同步配置 30 7.5.1 主机A设置同步 30 7.5.2 主机B设置同步 31 八. my.cnf配置样例 34 8.1 my.cnf推荐配置 34 8.2 my.cnf主从推荐配置 35 8.2.1 主机my.cnf推荐配置 35 8.2.2 从机my.cnf推荐配置 35 8.3 my.cnf互为主从推荐配置 36 8.3.1 主机A my.cnf推荐配置 36 8.3.2 主机B my.cnf推荐配置 37 8.3.3 鄙人的my.cnf简单配置 38 九. Mysql根据ibd文件恢复数据 40 9.1 创建新数据表,和源数据表一致 40 9.2 删除新数据表的表空间 40 9.3 将待恢复的<table_name>.ibd文件copy到目标数据库文件夹下,并修改文件权限 40 9.4 导入表空间 41 十. 根据frm文件恢复表结构 42 10.1 新建同名的表 42 10.1.1 建立新的表结构 42 10.1.2 修改新建的数据表结构为17个字段 43
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StarsL.cn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值