DAY2-MySQL专业安装

MySQL安装

安装方法:

1.源码

2.二进制 (建议使用)

3.rpm (尽量不用)

一、下载MySQL:

一定要从官网下载,防止被勒索。

官网: http://dev/mysql.com

版本:

GA(生产用)

DMR

RC

Beta

下载步骤:

建议:每次发新版本时候,到官网看看 Change History,修复的bug和新特性是否需要,考虑是否升级。

检查安装包是否可用:查看安装包的md5值和官网是否一致。

md5sum mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

 也可以直接在操作系统:

 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

二、Linux环境检查

1.关闭numa

2.限制设置/etc/security/limits.conf & 网络优化

3.Swap

4.IO调度

5.文件系统

6.selinux & iptables

推荐吴老师的博客:

http://wubx.net/21ways-optimize-mysql/

三、MySQL准备

二进制安装方式:
1.创建账户(mysql:mysql /sbin/nologin)
groupadd mysql
useradd -g mysql -s /sbin/nologin -d /usr/local/mysql -MN mysql

2.软件的基本安装
mkdir -p /opt/mysql
cd /opt/mysql/
tar zxvf mysql-5.7xxxx.tar.gz
chown -R mysql:mysql mysql-5.7xxxx
cd /usr/local/
ln -s /opt/mysql/mysql-5.7xxxx /usr/local/mysql (链接为了升级方便)
检查mysqld命令是否可用
ldd /usr/local/mysql/bin/mysqld

3.数据库目录创建
mkdir -p /data/mysql/mysql3306/{data,logs,tmp}
chown -R mysql:mysql /data/mysql

4.配置文件准备
cd /data/mysql/mysql3306
vi my3306.cnf

5.初始化MySQL
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize
echo $?
loose_ (如果不识别,不生效)
配置文件加user,所以初始化不用加user
密码在error.log里面

6.检查error log初始化是不是正常

7.启动
自启动: cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld ; /etc/init.d/mysqld start ;chkconfig mysqld on 
建议启动方式: /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &

8.登陆
mysql -S /tmp/mysql3306.sock -p

9.改root密码
alter user user() identified by 'admin';

10.停止
命令行: shutdown (5.7以后)
mysqladmin -S /tmp/mysql3306.sock -p shutdown


多实例安装:
mkdir -p /data/mysql3307/{data,logs,tmp}
chown -R mysql:mysql /data/mysql/mysql3307
cp /data/mysql3306/mysql3306.cnf /data/mysql/mysql3307/my3307.cnf
sed -i 's/3306/3307/g' /data/mysql/mysql3307/my3307.cnf
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3307/my3307.cnf --initialize

账号安全加固:(5.6及以前)

1.删除非root,非localhost用户。

delete from mysql.user where user!='root' or host!='localhost';

2.清空mysql.db表。

truncate mysql.db

3.删除test库。

drop database test;

启动查找my.cnf

跟踪启动过程:strace /usr/local/mysql/bin/mysqld 2>&1 |tee start.log ; /my.cnf

mysql --help |grep my.cnf

/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

mysqld --verbose --help > t.log

vi t.log ;/defaults-file

TIPS:

没有mysql命令:

echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

source /etc/profile

反解析错误代码:

/usr/local/mysql/bin/perror 11

查看端口是否被占用:

lsof -i :3306

netstat -apn|grep 3306

ss -nltp

cat /proc/$pid/cmdline

查看运行级别:

runlevel

who -r

查看谁在该主机:

w

将远程登陆踢掉:

pkill -kill -t pts/1

ps -axu | grep pts ; kill -9 $pid

给远程用户发消息:

echo "who are you?" > /dev/pts/1

命令行格式:

man mysql ;/prompt

vim ~/.my.cnf

[mysql]

prompt="\\u@\\h:\\p [\\d]>"

#pager="less -i -n -S"

#tee=/opt/mysql/query.log

no-auto-rehash

server: mysqld

client: mysql

猜你喜欢

转载自www.cnblogs.com/yujiaershao/p/9066157.html