/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &
1.互联网大厂MySQL的安装标准化是什么样的?
2.为什么生产中不用MySQL的启动?
3.利用strace分析MySQL相关配置加载,为什么推荐使用defaults-file
4.为什么要使用多实例,MySQL 单机多实例安装有什么注意事项
5.6.26
1.互联网大厂MySQL的安装标准化是什么样的?
业界规范
基础软件
/opt/mysql/mysql-x-x
软连到:ln -s /opt/mysql/mysql-x /usrlocal/mysql
软件运行用户:mysql:mysql
数据库目录规划
/data/mysql/mysql+port/{data,logs,tmp}
配置文件/data/mysql/mysql+port/myport.cnf
/usr/local/mysq/bin/mysqld -defaults-file=/path/myport.cnf &
unlink /usr/local/mysql
ln -s /opt/mysql/mysql-xxx /usrlocal/mysql
/sbin/nologin
mkdir -p /data/mysql/mysql3306/{data,logs,tmp}
/data/mysql/mysql3306/{data,logs,tmp,my3306.cnf}
1.创建帐号:groupadd mysql & useradd -g mysql -s /sbin/nologin -d /usr/local/mysql -MN mysql
2下载mysql解压相关位置 /opt/mysql/
3.加入path : echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile & source /etc/profile
4.创建基本目录: cd /data/mysql & mkdir mysql3306/(data,logs,tmp} & chown -R mysql:mysql /data/mysql/mysql3306
5.调整配置文件
6.初始化:/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize
7.启动:/usr/ocal/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &
cat error.log|grep passwd
sed -i 's/3306/3308/g' my3008.cnf
mysql -S /tmp/mysql3306.sock -p
alter user user() identified by '123';
mysqladmin -S /tmp/mysql3306.sock -p123 shutdown
mysql>shutdown;
2.为什么生产中不用MySQL的启动?
·如果机器挂了,建议数据库也停下来。
·如果使用了自动启动,又不是太熟悉环境,一定要使用read_only功能 super_read_only,read_only
·如果数据库退出了,也要把问题暴露出来。
·例如表损坏,访问到坏表,进程退出
·服务自起不建议用到数据库上
数据库安全加固
提示:低于5.7的版本加固处理:
mysql>delete from mysql.user where user !='root' or host !='localhost'
mysql>truncate mysql.db;
mysql>drop database test;
select user,host,password from mysql.user where user='';
/usr/local/mysql/bin/mysqld &
会使用那个配置文件?
docker ps
docker ps -a
docker start dzst150
docker inspect dzst150 找ip
ssh 172.16.0.150
mysqld --verbose
[mysql]
auto-rehash
prompt="\\u@\\h [\\d]>"
mysql --help | grep my.cnf
strace mysql -S /tmp/mysql3306.sock -p 2>&1 | tee start.log
strace mysql --defaults-file=/data/mysql/mysql3306/my3306.cnf -S /tmp/mysql3306.sock -p 2>&1 | tree 11.log
3.利用strace分析MySQL相关配置加载
strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用。
Strace是一个简单的跟踪系统调用执行的工具。在其最简单的形式中,它可以从开始到结束跟踪二进制的执行,并在进程的生命周期中输出一行具有系统调用名称,每个系统调用的参数和返回值的文本行。
阅读:
strace /usr/local/mysql/bin/mysqld
参考:mysqld --verbose --help |grep my.cnf
为什么推荐使用defaults-file启动MySQL
mysqld -verbose --help
--print-defaults Print the program argument list and exit.
--no-defaults Don't read default options from any option file,except for login file.
--defaults-file=# Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
/usr/local/mysql/bin/mysqld --print-defaults
为什么使用单机多实例
·单机资源有剩余
·单实例连接数太多
·更多是靠主库抗业务,从库太闲
·业务高峰不一样,混跑充分利用机器的资源
·超卖,超卖,超卖,不超卖,云都活不下去
多立例安装注意事项
配置参数:
datadir =/data/mysql/mysql3306/data
server_id =103306
port =3306
socket =/tmp/mysql3306.sock
log_bin =/data/mysql/mysql3306/logs/mysql-bin
系统资源
1、注意内存分配不要超过总内存的80%
2、单个用户可以启动的进程限制ulimit -a确认
多实例
cd /data/mysql/
mkdir mysql3312/{data,logs,tmp} -p
cp mysql3306/my3306.cnf mysql3312/my3312.cnf
cd mysql3312/
sed -i 's/3306/3312/g' my3312.cnf
grep "3312" my3312.cnf
shown -R mysql.mysql ../mysql3312
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3312/my3312.cnf --initialize
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3312/my3312.cnf &
cat data/error.log | grep pass
alter user user() identified by '123';
set global read_only=0;
set global super_read_only=0;
总结自动安装MySQL
网友评论