1、下载对应版本:https://dev.mysql.com/downloads/repo/yum/
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
2、加载rpm
rpm -ivh mysql*.rpm
或使用
yum localinstall mysq*.rpm
或使用(在rpm所在文件夹或者指定地址)
yum localinstall mysql80-community-release-el7-1.noarch.rpm
3、安装
yum install mysql-server
查看安装位置
# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
usr/bin 下是mysql 的启动文件,mysqladmin、mysql 等文件位置
在linux中链接mysql可以进入到bin目录下:./mysql 链接
4、查看
yum repolist all | grep mysql
查看是否启动
systemctl status mysqld.service
修改配置
vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
#忽略大小写
lower_case_table_names=1
#group by 问题
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#退出编辑并保存
:wq
# 初始化配置
mysqld --initialize --console
启动
如果失败查看 日志错误原因
cat /var/log/mysql/mysqld.log
# 我遇到的是:The innodb_system data file 'ibdata1' must be writable
# [ERROR] [MY-010183] [Server] Failed to create file(file: '/var/lib/mysql/auto.cnf', errno 13)
# 修改 ibdata1 的权限问题,
# 找到所在位置
find / -name ibdata1
# 赋权
chmod -R 777 *******
# 加载
mysqld --initialize --console
重启即可
5、启动/暂停
启动:systemctl start mysqld.service
暂停:systemctl stop mysqld.service
6、其他相关操作(系统不一样可能某些命令会失效,多试一下相关命令,一定要检查是否输入正确)
进入mysql
mysql -u root -p
密码在 /var/log/mysql/mysqld.log 中
进入mysql先修改密码,否则其他操作都会拒绝
alter user 'root'@'localhost' identified by '123';
// 创建远程连接用户 第一个root是用户名 第二个root是密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
或者
grant all privileges on *.* to 'sysmgr'@'localhost';
以上授权命令一些版本会报错
可以用:
grant all privileges on *.* to 'root'@'%';
// 切换表
use mysql
// 查看数据
select user,host from user;
// error Access denied for user 'yuning'@'127.0.0.1' (using password: YES)
// 修改localhost为%,%所有都可以链接,localhost只能本机链接
update user set host="%" where user="root";
// 设置密码
mysqladmin -u root password "123456!"
// 启动linux环境,密码输入进入myslq
myslq -u root -p
// 刷新命令
flush privileges;
Access denied for user 'yuning'@'127.0.0.1' (using password: YES)
确认是否开启远程链接
mysql表中的localhost是否修改为%
数据备份:
编写脚本文件(.sh文件)
#!/bin/bash #数据库IP #dbserver='192.168.26.1' #数据库用户名 #dbuser='root' #数据密码 #dbpasswd='root' #数据库,如有多个库用空格分开 dbname='edu_app' #备份时间 backtime=`date +%Y%m%d` #备份输出日志路径 logpath='/opt/mysqlback/' echo "################## ${backtime} #############################" echo "开始备份" #日志记录头部 echo "" echo "-------------------------------------------------" echo "备份时间为${backtime},备份数据库表 ${dbname} 开始" #正式备份数据库 for table in $dbname; do source=`mysqldump --default-character-set=utf8 ${table} > ${logpath}/${backtime}.sql` #备份成功以下操作 if [ "$?" == 0 ];then cd $logpath #为节约硬盘空间,将数据库压缩 tar zcf ${table}'-'${backtime}.tar.gz ${backtime}.sql > /dev/null #删除原始文件,只留压缩后文件 rm -f ${logpath}/${backtime}.sql #删除七天前备份,也就是只保存7天内的备份 find $logpath -name "*.tar.gz" -type f -mtime +30 -exec rm -rf {} \; > /dev/null 2>&1 echo "数据库表 ${dbname} 备份成功!!" else #备份失败则进行以下操作 echo "数据库表 ${dbname} 备份失败!!" fi done echo "完成备份" echo "################## ${backtime} #############################"
完成之后可测试:
./mysql.sh
看到输出正常即可
# 查看crond 状态,如果未启动启动运行
systemctl status crond #查看状态
systemctl start crond # 运行
systemctl restart crond #重启
systemctl stop crond #停止运行
运行命令:
crontab -e
写入:
* * * * * /opt/mysql/mysql.sh
: wq #保存退出
查看运行命令:
tail -f /var/log/cron
如果运行之后没有对应的结果:
# crontab -e
写入:
* * * * * cd /opt/mysql sh ./mysql.sh
# MYSQL服务安装 不同版本可以使用清华/阿里云镜像找到
wget https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-5.7.36-1.sles12.x86_64.rpm-bundle.tar
# 解压
tar -xvf mysql-5.7.36-1.sles12.x86_64.rpm-bundle.tar
# 先安装server , 防止其他依赖项在server未安装时报错
rpm -ivh --nodeps mysql-community-server-5.7.36-1.sles12.x86_64.rpm
如果报错使用
rpm -ivh --force --nodeps mysql-community-server-5.7.36-1.sles12.x86_64.rpm
# 全部安装
yum localinstall mysq*.rpm
# 修改配置文件,指定的数据/日志目录
/etc/my.cnf (没有的话启动mysql)
# 跳过密码验证
skip-grant-tables (写入到my.cnf中跳过密码)
# 进入mysql
mysql -u root -p
# 设置密码
set password for root@localhost='12345;
# 修改远程访问
use mysql ;
select user_name , host from user ;
update user set host='%' where user_name="root"
# 删除跳过配置
# 刷新数据信息
FLUSH PRIVILEGES;