安装
一、 下载mysql5.7
http://mirrors.sohu.com/mysql/MySQL-5.7/
Linux下载:
输入命令:wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
二、 建立用户,以及mysql的目录
1、 建立一个mysql的组
输入命令: groupadd mysql
2、 建立mysql用户,并放到mysql组
输入命令:useradd -r -g mysql mysql
3、 给mysql用户设置密码
输入命令:passwd mysql
三、 解压mysql
1、 把下载的mysql的包移动到Linux虚拟机下
2、 把tar包复制一份到/usr/local 目录下
输入命令:mv /software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz /usr/local
3、 解压
输入命令:cd /usr/local
输入命令:tar xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
4、 把解压出来的文件改下名字,改为mysql
输入命令:mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql
四、 配置相关的启动配置文件
1、 复制my_default.cnf到/etc/my.cnf (mysql启动时自动读取)
输入命令:cp my-default.cnf /etc/my.cnf
2、 解决乱码问题
输入命令:vi /etc/my.cnf
更改:
[mysql]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8
3、 复制mysql.server 到/etc/init.d/
输入命令:cp mysql.server /etc/init.d/mysql
4、 修改 /etc/init.d/mysql 参数,给予2个目录位置
输入命令:vi /etc/init.d/mysql
更改:basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
5、 给目录/usr/local/mysql 更改拥有者
chown -R 用户名:组名 /usr/local/mysql/
输入命令:chown -R mysql:mysql /usr/local/mysql/
五、 初始化mysql的数据库
1、 初始化数据库
首先要去到mysql/bin目录下
老版本的命令:mysql_install_db
新版本的命令:./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
生成出一个data目录,代表数据库已经初始化成功
这里会生成一个临时密码(保存记住,后面要用到)
2、 给数据库加密
输入命令:./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
3、 启动mysql
输入命令:./mysqld_safe --user=mysql &
&符号:把当前进程丢给后台
六、 进入客户端
1、 登录
输入命令:./mysql -uroot -p
然后输入你的临时密码
2、 修改密码
输入命令:set password=password('你的密码');
七、 window远程访问Linux虚拟机的mysql
1、 首先要关闭防火墙,这样window才能连接上
输入命令:systemctl stop firewalld.service
2、 给window授权
输入命令: grant all privileges on *.* to root@'%' identified by '123456';
3、 window远程连接
输入命令:mysql -hIP地址 -uroot -p123456
八、 设置开机自动启动mysql服务
1、 添加服务mysql
输入命令:chkconfig --add mysql
2、 设置服务开机自启
输入命令:chkconfig mysql on
九、设置path环境变量
输入命令:vi /etc/profile
设置环境变量:export PATH=$JAVA_HOME/bin:/usr/local/mysql/bin:$PATH
配置好环境变量后,我们就不用再去到/usr/local/mysql/bin目录才能登录了,现在可以在任意目录下登录mysql
十、完成
这样我们的mysql数据库就配置好了
备份
一、MySQL数据备份
1、在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法:
mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql
2、编辑shell脚本:
cd /home 进入home目录
mkdir mysqlbackup 创建文件夹
vim mysql_dump_script.sh
#!/bin/bash #保存备份个数,备份7天数据
number=7
#备份保存路径
backup_dir=/home/mysqlbackup
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
#备份工具
tool=mysqldump
#用户名
username=root
#密码
#password=TankB214
#将要备份的数据库 database_name=gl_gcc
#如果文件夹不存在则创建
if [ ! -d $backup_dir ];
then
mkdir -p $backup_dir;
fi
#简单写法
$tool --defaults-extra-file=/etc/my.cnf $database_name >
$backup_dir/$database_name-$dd.sql
#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt
#找出需要删除的备份
delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`
#判断现在的备份数量是否大于$number
count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`
if [ $count -gt $number ]
then
#删除最早生成的备份,只保留number数量的备份
rm $delfile
#写删除文件日志
echo "delete $delfile" >> $backup_dir/log.txt
fi
注意: mysql 5.7 以上版本不能把密码写在shell文件里,因此更改/etc/my.cnf 文件
解决方法:
对于mysqldump 要如何避免出现(Warning:Using a password on the command line interface can be insecure.) 警告信息呢?
① vim /etc/my.cnf
[mysqldump]
user=root(数据库账号)
password=数据库密码
②:wq
③重启mysql服务:service mysql restart
3、修改shell脚本权限,chmod 777 mysql_dump_script.sh ,这样这个脚本就变成可执行文件, ./mysql_dump_script.sh 可查看是否还有其他报错!
二、开启定时任务,执行数据库备份脚本
1、crontab -e 进入定时任务编辑页面
00 01 * * * /usr/bin/sh /home/mysqlbackup/mysql_dump_script.sh 代表每天凌晨1点执行一次这个脚本。
其他关于定时任务的资料可参考 https://www.runoob.com/w3cnote/linux-crontab-tasks.html
2、再用 service crond restart 重新启动定时任务服务即可!
3、crontab -l 可查看当前所有的定时任务列表!