centos mysql  实战  第一节课   安全加固  mysql安装

percona名字的由来=consultation 顾问+performance 性能=per  con  a

mysql官方手册:http://dev.mysql.com/doc/refman/5.7/en/datetime.html

mysql_install_db是一个perl脚本

http://mp.weixin.qq.com/s?__biz=MzI3MTAxMTY5OA==&mid=2671913078&idx=1&sn=6cf415e8c8137244aa46af48305dc356&scene=0#wechat_redirect

 
MySQL里面show processlist  每一个process就是一个线程 

mysql  /opt/mysql/xxx   一般安装在/opt下面

ln -s /opt/mysql/mysql-5.6.29-linux-glibc2.5-x86_64  /usr/local/mysql  做一个软链接过去/usr/local/mysql
原来已经有mysql软链接 ,需要unlink /usr/local/mysql

mysql
mysqlbinlog
mysqld
mysqld_safe
perror
mysqldump

看一下系统中是否有mysql这个用户
id   mysql

建立一个mysql用户
useradd  -s /sbin/nologin  -M  mysql

不要用root启动mysql,系统不会限制root的资源 ,ulimit,最好用普通用户去跑mysql

添加环境变量,两种方法
echo  "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
echo  "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile.d/mysql.sh

要掌握基本命令,screen,vim,要求能在Linux下输入20个命令不重复


总结

如果缺少libaio库需要安装 :yum install -y libaio*
Linux开发包: yum groupinstall  -y  'Development tools'

1. 下载MySQL
wget  -c https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

地址:https://dev.mysql.com/downloads/mysql/5.6.html#downloads
选择Linux Generic

2. 解压
tar zxvf mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz

-------------------------------------------------------------------------
centos7需要安装
yum -y install numactl
-------------------------------------------------------------------------

3. 创建用户
useradd  -M -s /sbin/nologin mysql

4. 创建必须的目录
mkdir -p /usr/local/mysql
mkdir -p /data/mysql/mysql3306/{data,tmp,logs}

5. 拷贝mysql文件
mv  /data/download/mysql-5.6.30-linux-glibc2.5-x86_64/*   /usr/local/mysql/
cp  /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

6. 环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

====== 启动起来 ========================

7. 权限
chown -R mysql:mysql /data/mysql/mysql3306/
chown -R mysql:mysql /usr/local/mysql

8. 创建一个配置文件  如果是多个实例分开多个my.cnf  my3306.cnf  my3307.cnf
vim %s/3306/3306/g
socket = /tmp/mysql3376.sock
innodb_data_file_path = ibdata1:1024M:autoextend

9. 初始化
5.1,5.5,5.6
cd /usr/local/mysql/
./scripts/mysql_install_db  --defaults-file=/etc/my.cnf
看到两次ok

也可以使用/usr/local/mysql/bin/mysql_secure_installation 来初始化mysql,进行安全加固

5.7
--设置随机密码
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf  --initialize

cat  /data/mysql/mysql3306/logs/error.log|grep -i  'password'
2016-11-30T13:28:37.276714Z 1 [Note] A temporary password is generated for root@localhost: 6fT?TYzJI*Dg

--不设置随机密码 (建议不设置随机密码 )
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf  --initialize-insecure

cat  /data/mysql/mysql3306/logs/error.log|grep -iE 'ERROR'
没有error

10. 启动 & 关闭  如果是多实例 分开多个启动脚本 /etc/init.d/mysql3306  /etc/init.d/mysql3307
修改启动脚本 vi  /etc/init.d/mysql
datadir=/data/mysql/mysql3306/data
basedir=/usr/local/mysql

/etc/init.d/mysql start or service mysql start
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &

启动了之后才生成auto.cnf文件

关闭:
/etc/init.d/mysql stop
/usr/local/mysql/bin/mysqladmin -S   /data/mysql/mysql3306/tmp/mysql.sock  shutdown

11. 安全加固
连接mysql:mysql -uroot -p -S /data/mysql/mysql3306/tmp/mysql.sock
--不设置随机密码跟5.6一样,不输入密码直接登录mysql
--设置随机密码,连接mysql的时候要输入随机密码才能登录mysql,并且需要修改密码才能让你进行下一步操作
-------------------------------------------------------------------------
5.7不用做
delete from mysql.user where user!='root' or host!='localhost';
truncate table mysql.db; #对test库没有授权,直接可以连接进来test库
drop database test;
-------------------------------------------------------------------------
修改密码:
mysqladmin -u USER -p password PASSWORD
或者
use mysql;
UPDATE user SET password=PASSWORD('123456') WHERE user='root'; 5.6
flush privileges;
或者
use mysql;
UPDATE user SET authentication_string=PASSWORD('123456') WHERE user='root'; 5.7
flush privileges;
或者
5.7新增方法
alter user user() identified by '123456' ;

alter user root@localhost identified by '123456' ;

select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+

12. iptables开放mysql端口

怎么确认mysql是启动起来的?
A 查看进程是否存在
ps axu |grep mysqld

ps -eo ppid,pid,user,args |grep mysql

B 查看端口是不是监听正确
netstat -nalp |grep mysqld
ss -lnpt |grep mysqld

C 看看错误日志有无异常
vim shit+g
tail

sock 是unix domain的一种通信方式,进程间通信

rpm,二进制包,源码包 安装优劣性   rpm包和二进制包都是从源码包得来的
生产环境用二进制,源码包的性能提升基本上没有提升相对于二进制,所以可以用二进制
mysql官网都推荐用二进制

mysql5.7.20之前默认会生成两个用户
root@localhost
mysql.sys@localhost

mysql5.7.20以及之后默认会生成三个用户
root@localhost
mysql.sys@localhost
mysql.session@localhost


个性化设置 MySQL prompt 提示符
 http://blog.itpub.net/26515977/viewspace-1208304/


cd /usr/local/mysql/再执行./scripts/mysql_install_db的原因

./ 表示 你在mysql目录里,如果你不 cd到mysql目录,那就找不到./bin/my_print_defaults文件
所以
先  cd /usr/local/mysql/
再  ./scripts/mysql_install_db  --defaults-file=/etc/my.cnf

f

centos mysql 实战 第一节课 安全加固 mysql安装的更多相关文章

  1. Centos安装自定义布局才能自己划分各个区的大小ctrl+z ,fg ,route -n ,cat !$ ,!cat ,XShell 设置, ifconfig CentOS远程连接 Linux中的输入流 第一节课

    Centos安装自定义布局才能自己划分各个区的大小ctrl+z ,fg ,route -n ,cat !$ ,!cat ,XShell 设置, ifconfig  CentOS远程连接  Linux中 ...

  2. [iOS]Objective-C 第一节课

    Objective-C 第一节课 本节课的主要内容 创建Objective-C的第一个工程 HelloWorld Objective-C中的字符串 创建Objective-C的第一个工程 打开Xcod ...

  3. Java第一节课动手动脑

    在第一节课的动手动脑中,主要解决四则运算问题. 首先第一个是出30道四则运算题目,在100以内.这个问题需要控制随机数生成的范围和结果的范围在100以内就可以. 第一次改进是3点:一为避免重复,二为定 ...

  4. 左神算法第一节课:复杂度、排序(冒泡、选择、插入、归并)、小和问题和逆序对问题、对数器和递归(Master公式)

    第一节课 复杂度 排序(冒泡.选择.插入.归并) 小和问题和逆序对问题 对数器 递归 1.  复杂度 认识时间复杂度常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数 ...

  5. springboot的第一节课

    快速开始spring boot应用 官方向导搭建boot应用 地址:http://start.spring.io/ 设置项目属性: 3.解压,拷贝到工作空间,导入maven项目 4.写Controll ...

  6. MySQL实战 | 03 - 谁动了我的数据:浅析MySQL的事务隔离级别

    原文链接:这一次,带你搞清楚MySQL的事务隔离级别! 使用过关系型数据库的,应该都事务的概念有所了解,知道事务有 ACID 四个基本属性:原子性(Atomicity).一致性(Consistency ...

  7. 五、Centos7安装mysql:第一步查看系统有无mysql,然后删除之

    CentOS下MySQL的彻底卸载 原创 2015年10月12日 00:16:02 标签: 21149 编辑 删除 #################CentOS7下MySQL的卸载######### ...

  8. JAVAWEB第一节课的课后思考

    第一开发一个网站需要的一些技术 至少熟悉一种建站程序.(html,javascript等等)对空间和域名的知识有一定的了解.有一些美工基础(例如ps设计等等).对编程有一些了解.HTML的代码知识基本 ...

  9. 【皇甫】☀Struts_第一节课

    本章讲解内容: DTD是Docunent Type Defintion的缩写,即文档类型定义.DTD用来描述XML文档结构. DOM4J是一个非常优秀的javaXML API,具有性能优异,功能强大和 ...

随机推荐

  1. SpringBatch的初步了解

    一.SpringBatch是一个批处理的框架,作为一个Spring组件,提供了通过使用Spring的依赖注入来处理批处理的条件. 什么是批处理呢? 在现代企业应用当中,面对复杂的业务以及海量的数据,除 ...

  2. 多线程开发之二 NSOperation

    效果如下: ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UITableViewControll ...

  3. 设置Linux打开文件句柄/proc/sys/fs/file-max和ulimit -n的区别

    max-file 表示系统级别的能够打开的文件句柄的数量.是对整个系统的限制,并不是针对用户的. ulimit -n 控制进程级别能够打开的文件句柄的数量.提供对shell及其启动的进程的可用文件句柄 ...

  4. vue编程式路由实现新窗口打开

    一. 标签实现新窗口打开: 官方文档中说 v-link 指令被 组件指令替代,且 不支持 target=”_blank” 属性,如果需要打开一个新窗口必须要用标签,但事实上vue2版本的 是支持 ta ...

  5. windows 2008 r2 不能启用网络发现

    在win2008 R2里面,不能启用网络发现,查询资料,得知需开启一下三个服务: Function Discovery Resource Publication SSDP Discovery UPnP ...

  6. .NET/C# 优化心得

    网上的优化千篇一律,遂干脆自己写一个,总结总结网上说的与自己的想法. 1.关于sql方面的优化,详见Mysql语句的优化 2.对于不常更新的网页,使用静态页,使用 cdn 加速. 3.关于主从同步,如 ...

  7. D - Pagodas

    n pagodas were standing erect in Hong Jue Si between the Niushou Mountain and the Yuntai Mountain, l ...

  8. centos 安装教程 服务器配置教程 服务器中安装python 服务器中安装Django 安装MySQL 配置MySQL

    一 .解决python编译安装所需的软件依赖 yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel opens ...

  9. Luogu 1494 - 小Z的袜子 - [莫队算法模板题][分块]

    题目链接:https://www.luogu.org/problemnew/show/P1494 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天 ...

  10. [No0000FF]鸡蛋煮熟了蛋黄为什么发黑?

    你是否发现,鸡蛋煮熟后,蛋黄表面会呈现青黑色. 这是怎么回事? 这是因为鸡蛋的蛋白质富含有半胱氨酸,鸡蛋如果加热过度使半胱氨酸部分分解产生硫化氢,与蛋黄中的铁结合形成黑色的硫化铁.煮蛋中如果鸡蛋表面的 ...