1.二进制格式安装
优点:解压后配置完成即可使用
//下载包
[root@localhost ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
//验证md5码一致性
[root@localhost ~]# md5sum mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
bf1a97232dbab450cf73356fc74a02a3 mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
//解压到指定路径
[root@localhost ~]# tar -xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
//重命名或创建软链接
[root@localhost local]# mv mysql-5.7.31-linux-glibc2.12-x86_64/ mysql
//创建root用户和组mysql
[root@localhost ~]# groupadd -r mysql
[root@localhost ~]# useradd -M -s /usr/sbin/nologin -g mysql mysql
//修改目录属主组为mysql
[root@localhost home]# chmod -R mysql.mysql /usr/local/mysql
//添加环境变量
编辑profile文件
[root@localhost ~]# vim /etc/profile
...
export PATH=$PATH:/usr/local/mysql/bin
或输出重定向至脚本文件mysql.sh
[root@localhost ~]# echo ‘export PATH=/usr/local/mysql/bin:$PATH‘ > /etc/profile.d/mysql.sh
[root@localhost ~]# . /etc/profile.d/mysql.sh
[root@localhost ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/apache/bin/:/root/bin
//建立软链接
[root@localhost ~]# ln -s /usr/local/mysql/include/ /usr/include/mysql
//添加帮助文档路径
[root@localhost ~]# vi /etc/man_db.conf
#MANDATORY_MANPATH /usr/src/pvm3/man
#
...
MANDATORY_MANPATH /usr/local/mysql/man
//添加库文件路径
[root@localhost ~]# vi /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@localhost ~]# ldconfig
//建立数据存放目录
[root@localhost ~]# chown -R mysql.mysql /opt/data
[root@localhost ~]# ll /opt/
total 0
drwxr-xr-x. 2 mysql mysql 6 Dec 28 18:41 data
//编辑配置文件my.cnf
[root@localhost ~]# vim /etc/my.cnf
...
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
//复制到etc/init.d/的mysqld
[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
//配置控制启动脚本
[root@localhost ~]# vim /etc/init.d/mysqld
# overwritten by settings in the MySQL configuration files.
...
basedir=/usr/local/mysql
datadir=/opt/data
//启动服务
[root@localhost ~]# service mysqld start
Starting MySQL.Logging to ‘/opt/data/localhost.localdomain.err‘.
SUCCESS!
//针对缺少库文件libncurses.so.5无法启动的情况
[root@localhost ~]# yum -y install libncurses*
//初始化数据库
[root@localhost ~]# mysqld --initialize --user=mysql --datadir=/opt/data/
...
2020-12-28T10:45:21.829771Z 1 [Note] A temporary password is generated for root@localhost: l?v:DA*C5-w7//临时密码(随机生成)
* 建议echo至空文件
//重置密码
[root@localhost ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.31
...
mysql> set password = password(‘123456‘);
Query OK, 0 rows affected, 1 warning (0.00 sec)
2.MySQL配置文件
- 存放路径/etc/my.cnf
- 关于.my.cnf:存放于家目录,多应用于脚本,不会输出登录步骤
[root@localhost ~]# vim .my.cnf
[client]
user=root
password=123456
配置文件查找次序:若在多个配置文件中均有设定,则最后找到的最终生效
/etc/my.cnf --> /etc/mysql/my.cnf --> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf
参数 | 说明 |
---|---|
port = 3306 | 设置监听端口 |
socket = /tmp/mysql.sock | 指定套接字文件位置 |
basedir = /usr/local/mysql | 指定MySQL的安装路径 |
datadir = /data/mysql | 指定MySQL的数据存放路径 |
pid-file = /data/mysql/mysql.pid | 指定进程ID文件存放路径 |
user = mysql | 指定MySQL以什么用户的身份提供服务 |
skip-name-resolve | 禁止MySQL对外部连接进行DNS解析.使用这一选项可以消除MySQL进行DNS解析的时间。若开启该选项,则所有远程主机连接授权都要使用IP地址方式否则MySQL将无法正常处理连接请求 |
- 数据库破解密码
//配置行增加“跳过授权表”
[root@localhost ~]# vim /etc/my.cnf
...
skip-grant-tables
//重启服务
[root@localhost ~]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
//进入‘mysql’数据库,看‘user’表
mysql> select * from user\G;
//update命令改需要更改的用户
mysql> update user set authentication_string=password(‘re123456!‘) where User=‘root‘ and Host=‘localhost‘
-> ;
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
//配置文件中删除skip-grant-tables
//重启服务
[root@localhost ~]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
//登录验证
[root@localhost ~]# mysql -uroot -pre123456!
...
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql>
3.MYSQL备份
3.1备份方案
备份方案 | 优缺点 |
---|---|
全量备份 | 在某个时间点的数据进行完整拷贝,数据恢复快,备份时间长 |
增量备份 | 针对上一次改变的数据进行备份,还原需要每一次的数据,备份时间端,但条件苛刻,需按一定顺序 |
差异备份 | 指第一次全量备份后所有改动的文件备份,我们只需对全量和差异备份进行恢复即可 |
主要方案 全量+差异
3.2 常用备份工具
- mysqldump
- -u:指定用户
- -h指定主机
- -p指定密码
//对全数据库进行备份
[root@localhost ~]# mysqldump -uroot -pre123456! --all-databases > all.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.