当前位置:首页 » 网页前端 » mysql远程脚本
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

mysql远程脚本

发布时间: 2022-10-03 08:55:46

㈠ mysql 设置远程访问权限 需要重启吗

重启mysql 服务就可以 , 无需重启电脑

㈡ 如何远程备份MySQL binlog

脚本对远程服务器进行备份的方式,有个缺点:无法对MySQL服务器当前正在写的二进制日志文件进行备份。所以,只能等到MySQL服务器全部写完才能进行备份。而写完一个binlog的时间并不固定,这就导致备份周期的不确定。
从MySQL5.6开始,mysqlbinlog支持将远程服务器上的binlog实时复制到本地服务器上。
mysqlbinlog的实时二进制复制功能并非简单的将远程服务器的日志复制过来,它是通过MySQL 5.6公布的Replication API实时获取二进制事件。本质上,就相当于MySQL的从服务器。与普通服务器类似,主服务器发生事件后,一般都会在0.5~1秒内进行备份。
备份命令

mysqlbinlog --read-from-remote-server --raw --host=192.168.244.145 --port=3306 --user=repl --password=repl --stop-never mysql-bin.000001

㈢ 如何执行一个mysql的sql脚本文件

基本步骤如下:
一、创建包含sql命令的sql脚本文件
文件中包含一系列的sql语句,每条语句最后以;结尾,假设文件名为ss.sql,文件内容示例如下(使用“--”进行注释):--创建表create table 表名称(Guid Varchar(38) not null primary key,
Title Varchar(255),
) TYPE=InnoDB;--在表A中增加字段Status
alter table A add Status TinyInt default '0';--在表A上创建索引
create index XX_TaskId_1 on A(Id_);
--在A表中添加一条记录
Insert into A (Id,ParentId, Name) values(1,0,'名称');
--添加、修改、删除数据后,有可能需要提交事务
Commit;二、执行sql脚本文件方法一 使用cmd命令执行(以windows为例,unix或linux的在其类似的控制台下运行)
格式:【Mysql的bin目录】\mysql –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】
示例:D:\mysql\bin\mysql –uroot –p123456 -Dtest<d:\test\ss.sql注意事项:1、如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略
2、如果【Mysql的bin目录】中包含空格,则需要使用“”包含,如:
“C:\Program Files\mysql\bin\mysql” –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】
3、如果需要将执行结果输出到文件,可以采用以下模式
D:\mysql\bin\mysql –uroot –p123456 -Dtest<d:\test\ss.sql>d:\dd.txt
方法二 进入mysql的控制台后,使用source命令执行
1、进入mysql控制台
D:\mysql\bin\mysql –uroot –p123456 -Dtest
2、执行sql脚本文件

㈣ 怎么备份远程mysql数据库的脚本文件

在MySQL中进行数据备份的方法有两种:
1. mysqlhot
这个命令会在拷贝文件之前会把表锁住,并把数据同步到数据文件中,以避免拷贝到不完整的数据文件,是最安全快捷的备份方法。
命令的使用方法是:
mysqlhot -u root -p<rootpass> db1 db2 … dbn <output_dir>
如果需要备份全部数据库,可以加上–regexp=”.*”参数。
Mysqlhot命令可自动完成数据锁定工作,备份时不用关闭服务器。它还可以刷新日志,使备份文件和日志文件的检查点能保持同步。
2. mysqlmp
这个命令是用来把数据库倒成sql文件的,是非常古老的命令了。
命令的使用方法是:
mysqlmp -u root -p<rootpass> –hex-blob db1 > db1.sql
加上–hex-blob参数以后,blob数据会被类似BASE64的方法转换为文本来存储在sql文件中,就不会导致sql文件格式问题了。经过测试,通过这种方法备份的blob数据再重新恢复回去能够完全正确。
如果要备份所有的数据库,可以加上–all-databases参数。
用mysqlmp命令还可直接把数据库转移到另外一台服务器上,不用生成备份文件。重复执行可定期更新远程数据库。
% mysqladmin -h remote_host create testdb
% mysqlmp –opt testdb | mysql -h remote_host testdb
另外还可通过ssh远程调用服务器上的程序,如:
% ssh remote_host mysqladmin create testdb

㈤ 如何远程备份MySQL binlog

用脚本对远程服务器进行备份的方式,有个缺点:无法对MySQL服务器当前正在写的二进制日志文件进行备份。所以,只能等到MySQL服务器全部写完才能进行备份。而写完一个binlog的时间并不固定,这就导致备份周期的不确定。

从MySQL5.6开始,mysqlbinlog支持将远程服务器上的binlog实时复制到本地服务器上。

mysqlbinlog的实时二进制复制功能并非简单的将远程服务器的日志复制过来,它是通过MySQL 5.6公布的Replication API实时获取二进制事件。本质上,就相当于MySQL的从服务器。与普通服务器类似,主服务器发生事件后,一般都会在0.5~1秒内进行备份。

备份命令

mysqlbinlog--read-from-remote-server--raw--host=192.168.244.145--port=3306--user=repl--password=repl--stop-nevermysql-bin.000001

解释如下:

--read-from-remote-server:用于备份远程服务器的binlog。如果不指定该选项,则会查找本地的binlog。

--raw:binlog日志会以二进制格式存储在磁盘中,如果不指定该选项,则会以文本形式保存。

--user:复制的MySQL用户,只需要授予REPLICATION SLAVE权限。

--stop-never:mysqlbinlog可以只从远程服务器获取指定的几个binlog,也可将不断生成的binlog保存到本地。指定此选项,代表只要远程服务器不关闭或者连接未断开,mysqlbinlog就会不断的复制远程服务器上的binlog。

mysql-bin.000001:代表从哪个binlog开始复制。

除了以上选项外,还有以下几个选项需要注意:

--stop-never-slave-server-id:在备份远程服务器的binlog时,mysqlbinlog本质上就相当于一个从服务器,该选项就是用来指定从服务器的server-id的。默认为-1。

--to-last-log:代表mysqlbinlog不仅能够获取指定的binlog,还能获取其后生成的binlog,获取完了,才终止。如果指定了--stop-never选项则会隐式打开--to-last-log选项。

--result-file:用于设置远程服务器的binlog,保存到本地的前缀。譬如对于mysql-bin.000001,如果指定--result-file=/test/backup-,则保存到本地后的文件名为/test/backup-mysql-bin.000001。注意:如果将--result-file设置为目录,则一定要带上目录分隔符“/”。譬如--result-file=/test/,而不是--result-file=/test,不然保存到本地的文件名为/testmysql-bin.000001。

不足:

这个方式有个问题,对于常规的主从复制来说,如果主从直接的连接断开了,则从会自动再次连接,而对于mysqlbinlog,如果断开了,并不会自动连接。

解决方案:

可通过脚本来弥补上述不足

#!/bin/sh
BACKUP_BIN=/usr/bin/mysqlbinlog
LOCAL_BACKUP_DIR=/backup/binlog/
BACKUP_LOG=/backup/binlog/backuplog
REMOTE_HOST=192.168.244.145
REMOTE_PORT=3306
REMOTE_USER=repl
REMOTE_PASS=repl
FIRST_BINLOG=mysql-bin.000001
#
SLEEP_SECONDS=10
##createlocal_backup_dirifnecessary
mkdir-p${LOCAL_BACKUP_DIR}
cd${LOCAL_BACKUP_DIR}
##运行while循环,连接断开后等待指定时间,重新连接
while:
do
if[`ls-A"${LOCAL_BACKUP_DIR}"|wc-l`-eq0];then
LAST_FILE=${FIRST_BINLOG}
else
LAST_FILE=`ls-l${LOCAL_BACKUP_DIR}|grep-vbackuplog|tail-n1|awk'{print$9}'`
fi
${BACKUP_BIN}--raw--read-from-remote-server--stop-never--host=${REMOTE_HOST}--port=${REMOTE_PORT}--user=${REMOTE_USER}--password=${REMOTE_PASS}${LAST_FILE}
echo"`date+"%Y/%m/%d%H:%M:%S"`mysqlbinlog停止,返回代码:$?"|tee-a${BACKUP_LOG}
echo"${SLEEP_SECONDS}秒后再次连接并继续备份"|tee-a${BACKUP_LOG}
sleep${SLEEP_SECONDS}
done

脚本解读:

1. 实际上定义了一个死循环,如果备份失败,则10s后重新连接。

2. 第一次运行时需指定FIRST_BINLOG的值,指从哪个binlog开始复制,一般为mysql-bin.000001。后续执行的时候就直接获取备份目录下最新的binlog,从最新的binlog开始复制。

总结:

1. 如果指定了--raw,mysqlbinlog获取事件后,并不会实时落盘,而是先保存在本地服务器的内存中,每4K刷盘一次。这也就减少了频繁的日志写操作。如果此时mysqlbinlog和主服务器之间的连接断开了,则内存中的binlog会马上刷新到磁盘中。

2. 尽管mysqlbinlog类似于从服务器,但从服务器上的relaylog却是实时存盘的,即从服务器获取主服务器产生的事件后,会实时写入到relaylog中。

3. 如果不指定--raw,这个时候会以文本格式存盘,此时,--result-file=/test/不能指定为目录,必须明确写上文件名,譬如--result-file=/test/1.sql,此时,mysqlbinlog获取事件后,是实时落盘的,不会每4K刷盘一次。

㈥ 如何把本地的mysql导出为.sql的脚本,发布到远程的数据库上

不知道你是 win还是linux
win下可以用 第三方管理软件,比如:Navicat for MySQL

你就找个windows用软件连接.
然后查询导出吧

㈦ 如何编写一个mysql数据库脚本

导出正式服务器的数据库和测试服务器数据库,并按照指定格式命名。
打开Beyond
Compare软件,如图,选择文本比较,进入到文本比较主界面之后
,如图选择要比较的sql文件,然后,软件会呈现出如图数据库结构的不同之处。
即使在比较出两个数据库的结构不同之后,对于sql语句的小白来说,很难写出升级数据库的升级脚本,下面我们将讲解如何利用mysql
workbench来帮你写sql。
首先,在本地数据库创建test和release数据库,创建步骤如图所示。然后,将第二步导出的数据库分别导入到新建的数据库,接下来就可以对release数据库动手了。
下面以增加数据库表的一个字段为例,讲解sql语句的生成。由图中的7个步骤,便可以得到对一个表增加一个字段的sql语句,对表字段的增删改,对表内容的增删改操作,删除表操作类似可得。下面讲如何得到新建一个表的sql语句。
如图,便可得到创建表的语句。
上述的sql语句的集合便是数据库生成脚本,脚本通常是在workbench里面编辑查看和执行的,几个基本按钮的使用如图。
执行完上述sql脚本之后,正式服务器的数据库和测试服务器的数据库结构除了主键自增值,host差异之外,其余内容应全部相同,如果不是,则调整脚本内容,直至两个数据库的结构相同为止。
此时的数据库升级脚本仍为数据库升级暂时脚本,临时脚本需交由项目负责人审核检查之后,按照:工程名+版本+时间+正式+数据库升级脚本.sql保存,并上传svn,用于新版本发布。

㈧ 用MysQL怎么进行远程连接数据库

1、首先在电脑端登陆数据服务器进行操作,如图所示。