mysql官网下载地址
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
首先将mysql压缩包解压到/usr/local目录下
tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar
将解压出来文件重命名为mysql
mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql
添加用户与用户组
groupadd mysql
添加用户mysql 到用户组mysql
useradd -g mysql mysql
安装-进入mysql目录
cd /usr/local/mysql
新建data文件
mkdir data
改变目录拥有着mysql
chown -R mysql:mysql ./
在mysql目录下执行安装命令,执行输出完之后尾部会有mysql的初始密码
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
将mysql/目录下除了data/目录的所有文件,改回root用户所有
chown -R root .
mysql用户只需作为mysql-5.7.20/data/目录下所有文件的所有者
chown -R mysql data
复制文件到系统目录
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
cp bin/my_print_defaults /usr/bin/
修改启动脚本
vi /etc/init.d/mysqld
修改项如下:
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
加入环境变量,编辑 /etc/profile,这样就无需定位到mysql目录执行了
vi /etc/profile
添加mysql路径,加入下面内容,按ESC-->:wq保存
export PATH=$PATH:/usr/local/mysql/bin
刷新立即生效
source /etc/profile
修改mysql配置项
vi /etc/my.cnf
配置如下:
[mysqld]
basedir = /usr/local/mysql/
datadir = /usr/local/mysql/data/
socket = /tmp/mysql.sock
user = mysql
tmpdir = /tmp
symbolic-links=0
lower_case_table_names=1 # add here 添加大小写不区分
[mysqld_safe]
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
启动mysql
service mysql start
service mysqld start
修改mysql初始密码以及远程链接的用户权限问题
mysql -u root -p
ALTER USER USER() IDENTIFIED BY 'root';
use mysql;
update user set host = '%' where user ='root';
flush privileges;
远程连接mysql异常缓慢,
解决方法,my.ini里面添加如下
[mysqld]
skip-name-resolve
skip-grant-tables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面编写备份脚本
#cd /home/
#vi back.sh
编写如下
#!/bin/bash
#保留备份个数,会删除时间较早的.dump备份
number=3
#设置备份保存路径,替换成自己的备份保存路径
backup_dir=/root/db_askdata/
#日期格式
dd=`date +%Y%m%d`
#备份工具
tool=mysqldump
#数据库用户名
username=root
#数据库密码,由于密码可能包含特殊字符,需要用''转义
password='intel@123'
#数据库链接地址
host='192.168.1.111'
#数据库看装目录,如该文件执行生成的.dump文件没有数据则在tool前加上这一变量,反之则去掉
mysql=/usr/local/mysql/bin/
#将要备份的数据库名称,yourdb替换成自己要备份的数据库名,此脚本只支持备份一个数据库,多数据库mysqldump用法
database_name=jeesite_ukefu
#远程备份
$mysql$tool -h$host -u $username -p$password --databases $database_name > $backup_dir/$database_name-$dd.dump
#本地备份
#$mysql$tool -u $username -p$password --databases $database_name > $backup_dir/$database_name-$dd.dump
#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dump" >> $backup_dir/log.txt
#查询本目录下所有备份文件
#查询备份文件是按照备份文件的生成时间来计算的
FileNum=$(ls -l $backup_dir/*.dump | grep ^- | wc -l)
echo "Number of backup files:"$FileNum >> $backup_dir/log.txt
while(( $FileNum > $number ))
do
#取最旧的文件,*.*可以改为指定文件类型
OldFile=$(ls -rt $backup_dir/*.dump | head -1)
echo "Delete File:"$backup_dir'/'$OldFile >> $backup_dir/log.txt
rm -f $OldFile
let "FileNum--"
done
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
利用crond实现自动备份
下面的安装方法
#yum install vixie-cron
#yum install crontabs
主要命令操作
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看crontab服务状态
配置文件配置
crontab -e
配置实例
添加如下
01 00 * * * /home/back.sh
每天00点01分执行back.sh