首页
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
Search
1
从Google Authenticator解密获取2FA密钥备份教程
2 阅读
2
【N1安装飞牛之获取root】FNos飞牛NAS获取root密码详细教程
1 阅读
3
【N1安装飞牛优化三】Btrfs 挂载优化,限制 Docker 日志大小 (防止撑爆硬盘),额外启动参数优化CPU
1 阅读
4
NGINX 零停机平滑升级全流程实操指南
1 阅读
5
powershell报错:“irm - 请求被中止- 未能创建 SSL-TLS 安全通道“
0 阅读
登录
Search
标签搜索
JAVA
JAVA学习系列
docker
Linux
js
N1
git
模块二
端口
模块一
模块五
模块九
数据库
模块四
镜像
模块三
模块六
MySQL
百度网盘
Armbian
DaiMaFengZi
累计撰写
583
篇文章
累计收到
7
条评论
首页
栏目
斐讯设备
疯言疯语
系统运维
编程语言
网站建设
页面
搜索到
48
篇与
的结果
2024-12-10
lnmp如何打开mysql远程访问
1、给mysql的数据库账户增加远程访问权限mysql; mysql>use mysql; mysql>grant all privileges on *.* to '账户'@'%或者ip' identified by '密码' with grant option; mysql>flush privileges; # 加载刚刚设置的配置 mysql>exit; #退出mysql lnmp restart # 重启lnmp2、通过iptables修改系统防火墙规则iptables -L -n --line-numbers # 查看已有的iptables规则 # 在iptables规则里有一行是DROP,末尾以3306结尾的,在lnmp1.5里面序号是6,不同版本可能会不一样,自行确认 iptables -D INPUT 6如果删掉drop 3306端口后,还是连接补上,就通过iptables添加上3306端口# 新增规则(-I表示插入在链的第一位置,-A 表示追加到链的末尾位置,防火墙规则是从上往下读取) iptables -I INPUT -p tcp --dport 3306 -j ACCEPT # 保存规则到默认文件/etc/sysconfig/iptables service iptables save # 重启 service iptables restart3、阿里云或者腾讯云,在控制端放开相关端口
2024年12月10日
0 阅读
0 评论
0 点赞
2024-12-10
lnmp安装好后phpmyadmin无法登陆mysql报错SERVER SENT CHARSET (255) UNKNOWN
报错phpmyadmin报错mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers原因分析这是因为在MySQL 8.0.11中,caching_sha2_password是默认的身份验证插件,而不是以往的mysql_native_password。所以和php不兼容。可以降级php,也可以修改MySQL的配置。修复方式打开/etc/my.cnf做如下配置:[mysqld] port=3306 character-set-server=utf8 default_authentication_plugin=mysql_native_password [mysql] default-character-set=utf8 [client] default-character-set=utf8执行重启命令lnmp restart再到phpMyAdmin登录就可以了。
2024年12月10日
0 阅读
0 评论
0 点赞
2024-07-24
LNMP安装好的MySQL8 重新设置大小写敏感
问题描述今天对我本地的数据库迁移服务器上,完成之后启动项目报错说数据库中不存在 quartz_LOCKS 这张表我打开服务器上面的数据上面展示的表名是 quartz_LOCKS,然后通过查询 lower_case_table_names 配置可知show variables like 'lower_case_table_names';lower_case_table_names=0,表示 表名区分大小写,且按照用户指定存储lower_case_table_names 各参数含义:0:表名区分大小写,且按照用户指定存储1:表不区分大小写,使用小写存储2:表不区分大小写,按照用户指定存储按理说只要将 lower_case_table_names 的值设置为 1 或者 2 就行了接着我去修改了服务器上 my.cnf (或者 my.ini)文件添加以下配置:[mysqld] lower_case_table_names = 1接着再重启 mysql# 重启 mysql systemctl restart mysqldmysql启动失败原因分析:根据提示使用 systemctl status mysqld.service 命令显示 mysqld.service 的状态信息,退出状态码为 1,这通常意味着在启动过程中遇到了某种错误,为了确定具体的错误原因,查看更详细的日志# 查询 mysql 日志 sudo tail -n 100 /var/log/mysqld.log从日志上说明 MySQL 服务器启动失败的原因是 lower_case_table_names 的设置不一致。MySQL 的 lower_case_table_names 配置项决定了表名在存储和比较时是否应该转换为小写,这个设置必须在服务器和数据字典之间保持一致,否则服务器将无法正确启动[ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').指出服务器期望 lower_case_table_names 设置为 1(意味着表名在存储和比较时应转换为小写),但是数据字典(即已有的数据库表元数据)的 lower_case_table_names 设置是 0(意味着表名区分大小写)从 mysqld.log 日志文件打印的信息来看,导致 Mysql 启动失败的原因就是因为设置了 lower_case_table_names=1 这个参数,之前在本地使用的 Mysql 是 5.7 版本的,而服务器上面的 Mysql 版本确是 8.0查看 Mysql 官方文档可知lower_case_table_names can only be configured when initializing the server. Changing the lower_case_table_names setting after the server is initialized is prohibited.在 Mysql-8.0 版本时,lower_case_table_names 变量是一个系统变量,它只能在 MySQL服务器初始化时设置,并且一旦服务器初始化完成,就不应该再更改这个设置。这是因为在 MySQL 的数据字典和文件系统层面,这个设置影响到了表名和目录名的大小写敏感性和转换规则。如果在服务器运行时改变这个设置,可能会导致数据不一致和其他严重问题解决方案:通过分析可知 Mysql8 在初始化之后是不能修改 lower_case_table_names 这个参数的那要解决这个问题有两种方案,要么就是更改现有的表明,要么就初始化数据库,更改配置方案一如果你的表比较少的话,可以通过 RENAME TABLE 语句来更改它们,例如:将 my_table 更新为 MY_TABLERENAME TABLE my_table TO MY_TABLE;但是,如果你有很多表需要更改,这种方法可能会很繁琐也可以编写一个脚本来查询数据库中的所有表名,并自动为它们生成 RENAME TABLE 语句,然后执行这些语句来更改表名方案二卸载现有的MYSQL 再通过lnmp脚本安装.卸载方式lnmp环境单独卸载 msyql https://luoweihua.cn/1091.html安装在安装脚本中先更改配置文件. 找到安装脚本:/root/lnmp2.1/include/mysql.sh在my.cnf配置文件的Mysqld配置里添加lower_case_table_names=1注意: 这里有好几处,都添加一遍执行安装命令cd /root/lnmp2.1/ ./install.sh db至此安装完成连接 Mysql# 连接 MySQL mysql -u root -p再通过以下命令查看下lower_case_table_names 的值是否为你所设置的show variables like 'lower_case_table_names';可以看到已经成功修改为 1 了. 完成重新设置大小写敏感
2024年07月24日
0 阅读
0 评论
0 点赞
2024-07-17
lnmp环境单独卸载 msyql
mysql如果有数据自己先备份,lnmp 官网没有提供单独卸载mysql的方案开始卸载停止mysql并删除一些配置/etc/init.d/mysql stop rm -rf /usr/local/mysql rm -f /etc/my.cnf chkconfig mysql off chkconfig --del mysql update-rc.d -f mysql remove rm -f /etc/init.d/mysql查找文件whereis mysql mysql: /usr/bin/mysql /usr/lib/mysql /usr/lib64/mysql /usr/include/mysql /usr/local/mysql删除文件rm -rf /usr/bin/mysql /usr/lib/mysql /usr/lib64/mysql /usr/include/mysql /usr/local/mysql 然后就可以安装新的MYSQL安装包目录下运行:./install.sh db进行安装;
2024年07月17日
0 阅读
0 评论
0 点赞
2024-07-16
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysq
今天在linux里安装mysql,运行时遇到这样的错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'上网查了下:这种情况大多数是因为你的mysql是使用rpm方式安装的,它会自动寻找 /var/lib/mysql/mysql.sock 这个文件,通过unix socket登录mysql。常见解决办法如下:创建/修改文件 /etc/my.cnf,至少增加/修改一行[mysql] [client] socket = /tmp/mysql.sock在这里写上你的mysql.sock的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下指定IP地址,使用tcp方式连接mysql,而不使用本地sock方式#mysql -h127.0.0.1 -uuser -ppassword为 mysql.sock 加个连接,比如说实际的mysql.sock在 /tmp/ 下,则#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可
2024年07月16日
0 阅读
0 评论
0 点赞
2024-07-10
mysql 怎么做定时备份 / mysql 备份 / sql文件导出
在MySQL数据库中,你可以使用不同的方法来定时备份数据库。以下是其中的一种方法,使用Linux系统中的cron任务和mysqldump命令来创建定时备份:创建备份脚本:首先,创建一个脚本文件,比如backup_script.sh,并添加以下内容:#!/bin/bash # MySQL数据库信息 DB_USER="your_username" DB_PASSWORD="your_password" DB_NAME="your_database" # 备份目录 BACKUP_DIR="/path/to/backup/directory" # 备份文件名 DATE=$(date +"%Y%m%d%H%M%S") BACKUP_FILE="$BACKUP_DIR/backup_$DATE.sql" # 使用mysqldump命令备份数据库 mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE # 可选:压缩备份文件 # gzip $BACKUP_FILE # 删除三天前的备份文件 find $BACKUP_DIR -type f -mtime +3 -name "sql_*.zip" -exec rm {} \;替换your_username,your_password和your_database为你的MySQL用户名、密码和数据库名。确保设置了适当的权限以保护这个脚本,以防止未经授权的访问。设置脚本权限:使用以下命令设置脚本文件的执行权限:chmod +x backup_script.sh配置cron任务:使用crontab -e命令编辑cron任务表,添加以下行来定时执行备份脚本。下面的例子表示每天凌晨3点执行备份:0 3 * * * /path/to/backup_script.sh保存并退出编辑器。这个cron任务将在每天的凌晨3点执行备份脚本,创建一个以日期和时间戳命名的备份文件。你可以根据需要调整cron任务的执行时间和频率。请注意,这只是其中一种备份方法。你还可以考虑其他选项,如使用专业的备份工具、MySQL的内置工具或者存储过程等。确保备份是根据你的需求和数据库的特定要求进行的。
2024年07月10日
0 阅读
0 评论
0 点赞
2024-06-04
Rsync+Inotify 实现数据同步,双向同步,单向同步
基本了解什么是rsync?与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应用故障时完全的恢复数据。基于以上原因,rsync+inotify组合出现了!什么是inotify?Inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools就是这样的一个第三方软件。在上面章节中,我们讲到,rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决了同步数据的实时性问题。rsync+inotify同步逻辑图环境准备服务器类型IP地址应用操作系统源服务器(数据源服务器),客户端192.168.130.161rsync inotify-tools 脚本centos7/redhat7目标服务器(备份服务器),服务端192.168.130.160rsynccentos7/redhat7重要提示关闭服务端和客户端的防护墙(不是必须,可以开放端口)、selinux(必须)。 #临时关闭 setenforce 0 #长久关闭---使用此方法。需要重启生效。所以可以先执行上面那句,再执行这句。就暂时可以不重启,先配置 sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config如果未关闭,会提示错误:rsync: failed to set times on "." (in backup): Permission denied (13) rsync: recv_generator: failed to stat "ccc" (in backup): Permission denied (13)目标服务器(备份服务器),服务端一:安装rsycn在Centos上只要一句代码而已,其他系统自己找。yum install -y rsync二:添加配置文件参数。[root@server ~]# vim /etc/rsyncd.conf ##日志文件位置. log file = /var/log/rsyncd.log ##pid文件的存放位置 pidfile = /var/run/rsyncd.pid ##支持max connections参数的锁文件 lock file = /var/run/rsync.lock ##用户认证配置文件,用于保存用户名称和密码,必须手动创建 secrets file = /etc/rsync.pass #自定义同步资源名称。 [qingjun] #rsync服务端数据存放路径,客户端的数据将同步至此目录 path = /tmp/ comment = sync runtime from client #设置rsync运行权限为root uid = 0 #设置rsync运行权限为root gid = 0 #默认端口 port = 873 #表示出现错误忽略错误 ignore errors #默认为true,修改为no,增加对目录文件软连接的备份 use chroot = no #设置rsync服务端为读写权限 read only = no #不显示rsync服务端资源列表 list = no #最大连接数 max connections = 200 #设置超时时间 timeout = 600 #执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开 auth users = admin #允许进行数据同步的源服务器IP地址,可以设置多个,用英文状态下逗号隔开 hosts allow = 192.168.0.0/24三:创建用户认证文件,设置文件权限为600。echo 'admin:123456' > /etc/rsync.pass chmod 600 /etc/rsync.pass 四:启动服务,设置开机自启。systemctl enable rsyncd systemctl start rsyncd五:验证是否监听端口ss -antl源服务器(数据源服务器),客户端一:安装rsycn在Centos上只要一句代码而已,其他系统自己找。yum install -y rsync二:配置epel源,安装inotify-tools服务。wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo #################################### wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel* sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel* ####################################### yum -y install inotify-tools二:创建认证密码文件,只需写密码,设置文件权限为600。echo '123456' > /etc/rsync.pass chmod 600 /etc/rsync.pass三:创建同步目录runtime。mkdir /runtime四:进入同步目录创建文件,开始同步。rsync -avH --port 873 --progress --delete /runtime admin@192.168.130.160::qingjun --password-file=/etc/rsync.pass 说明: rsync -avH --port 873 --progress --delete 源服务器需要同步到其他服务器的目录 admin@同步到哪个服务器IP::上面定义的同步模块 --password-file=/etc/rsync.pass五:服务端查看结果。六:自动同步- 1.写个脚本,给脚本设置开机启动执行。 #!/bin/bash host=192.168.130.160 src=/runtime des=qingjun password=/etc/rsync.pass user=admin inotifywait=/usr/bin/inotifywait $inotifywait -mrq --timefmt '%Y%m%d %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \ | while read files;do rsync -avzP --delete --timeout=100 --password-file=${password} $src $user@$host::$des echo "${files} was rsynced" >>/tmp/rsync.log 2>&1 done保存上面脚本到你想存放的目录,这边就存放到了opt目录下- 2. 后台执行脚本。nohup bash /opt/qingjun.sh &- 3. 添加到rc.local,实现开机自动启动这个脚本OK完美收工!
2024年06月04日
0 阅读
0 评论
0 点赞
2024-06-03
Linux 定时备份文件到另一台服务器
1. 需求用户要求将 Tomcat 的日志文件定时备份到另一台服务器。同事给我提供了一个写好的 java 框架,但实在不想给用户再维护另一个服务了,所以另寻他法。2. 问题使用 scp 等跨服务器传输命令时需要手动输入用户名的密码才可进行文件传输,定时任务会卡在这个节点上。3. 解决方案- 使用 crond 服务设置定时任务。 - 使用 sshpass 跳过手动输入密码过程。 - 使用 scp 命令传输文件。 3.1 crond 服务3.1.1 cron 表达式# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed3.1.2 crond 服务涉及命令# 编辑当前用户的cron表达式文件 crontab -e # 启动服务 /sbin/service crond start # 关闭服务 /sbin/service crond stop # 重启服务 /sbin/service crond restart # 重新载入配置 /sbin/service crond reload # 查看服务状态 service crond status3.2 sshpass + scp# 工具安装 yum install sshpass -y # 命令格式 # -p password 提供密码作为参数(安全性不明智) sshpass -p password scp -r -o StrictHostKeyChecking=no source_directory username@destination_ip:destination_directory # 示例 sshpass -p 123456 scp -r -o StrictHostKeyChecking=no /root/test.txt root@192.168.21.1:/root/其他问题你会发现执行命令之后无反应?可以添加下面代码可以添加-o StrictHostKeyChecking=no选项【表示远程连接时不提示是否输入yes/no】参考几种方法来实现scp拷贝时无需输入密码附上写的一键备份达梦数据库的脚本本地下载2024060308552755{cloud title="蓝奏网盘" type="lz" url="https://daimafengzi.lanzout.com/idnfL20q26gd" password=""/}{cloud title="天翼网盘(访问码:5qie)" type="default" url="https://cloud.189.cn/web/share?code=RjMrIjzMzMVf" password=""/}
2024年06月03日
0 阅读
0 评论
0 点赞
1
2
...
6