安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 # 更新apt- get 系统软件库 sudo apt- get update # 安装Mysql数据库 # 若已提前准备好配置文件,可直接跳到还原备份文件步骤 sudo apt- get install mysql- server # 这时候登录数据库,查看 lower_case_table_names 属性时,值为0 ,会区分大小写 # 停止Mysql服务 systemctl stop mysql # 备份配置文件 sudo cp / etc/ mysql/ mysql.conf.d/ mysqld.cnf / etc/ mysql/ mysql.conf.d/ mysqld.cnf.backup # 卸载已安装的Mysql sudo apt- get # 删除安装目录 (data默认位置,如有重要数据注意备份) sudo rm - rf / var/ lib/ mysql # 还原配置文件 sudo cp / etc/ mysql/ mysql.conf.d/ mysqld.cnf.backup / etc/ mysql/ mysql.conf.d/ mysqld.cnf # 编辑配置文件 注意:新添加的文本要放到[mysqld]标签下,添加 lower_case_table_names= 1 sudo vi / etc/ mysql/ mysql.conf.d/ mysqld.cnf # 再次执行安装命令 sudo apt- get install mysql- server
再次安装时,会提示配置文件已存在,是否覆盖(默认N不覆盖),至此,数据库安装完成。
登录数据库,查看设置结果。
1 2 3 4 # 当前没有密码 sudo mysql -u root -p # 查询lower_case_table_names属性,结果如下 select @@lower_case_table_names;
设置mysql为开机自启 1 sudo systemctl enable mysql
修改密码 1 2 3 4 5 6 7 8 9 10 11 # 第一次登录没有密码,直接回车 mysql -u root -p # 切换数据库 use mysql; # 更改密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; # 刷新权限 FLUSH PRIVILEGES;
设置远程访问登录 1 2 3 4 5 6 7 8 #进入mysql use mysql; #设置登录ip为%通配符,取消登录ip限制,原来的localhost代表只能在本机登录。 update user set host = '%' where user = 'root' and host = 'localhost'; #刷新权限 FLUSH PRIVILEGES;
修改配置文件 修改mysql配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,取消对远程ip为127.0.0.1的绑定,不取消127.0.0.1的绑定那么只有本机才能访问。
在mysqld.cnf文件里将bind-address、mysqlx-bind-address这两行注释掉。
1 2 #重启mysql service mysql restart
数据库定时备份 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #!/bin/bash # 配置变量 DB_USER="root" DB_PASS="weiyuan@888" DB_NAME="item" BACKUP_DIR="/usr/local/cron/mysql-bak/db-file" DATE=$(date +\%F) # 格式化日期为 YYYY-MM-DD BACKUP_FILE="${BACKUP_DIR}/backup_${DB_NAME}_${DATE}.sql" # 执行备份 docker exec -i mysql mysqldump -u ${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BACKUP_FILE} # mysqldump -u ${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BACKUP_FILE} # 如果备份成功,打印信息 if [ $? -eq 0 ]; then echo "Backup of ${DB_NAME} completed successfully at ${DATE}" >> ${BACKUP_DIR}/backup.log else echo "Backup of ${DB_NAME} failed at ${DATE}" >> ${BACKUP_DIR}/backup.log fi # 删除文件 find ${BACKUP_DIR} -type f -name "*.sql" -mtime +30 -exec rm {} \;
配置定时任务
1 2 3 4 crontab -e # 输入 0 */12 * * * /usr/local/cron/bak-sh/bak-item.sh