1. 개요
응용 시나리오: 많은 mysql 파일을 일괄적으로 실행해야 합니다. mysql 데이터베이스의 sql 파일을 하나씩 실행하는 것은 너무 시간이 많이 걸립니다.
디버깅 환경: 로컬 Windows 10, 실행될 데이터베이스는 LAN의 centos 서버에 있습니다.
Mysql은 로컬에 설치해야 합니다. 내 버전은 mysql5.7입니다.
MYSQL 다운로드:
리눅스 환경변수를 다운로드 받아 설치한 후 환경변수에 경로를 추가하면 이전에 사용했던 mysql 명령어를 사용할 수 있습니다.
1. Windows 명령줄이 mysql 명령을 지원하는지 확인하세요
명령줄을 사용하여 cmd에서 mysql에 로그인합니다. "내부 또는 외부 명령이 아닙니다"라는 메시지가 표시되면 이를 구성해야 합니다
image.png
mysql 설치 디렉터리 아래의 bin 디렉터리를 시스템 변수에 추가해야 합니다. Baidu 작동 방법을 알아보세요.
구성이 완료된 후 cmd를 다시 열고 mysql 명령줄을 직접 사용하세요.
2. 솔루션 아이디어 3. 구체적인 구현
1. 디렉터리를 탐색하여 새로운 일괄 실행 SQL 파일인 Batch.sql
을 생성합니다.루트 디렉터리에 새 sqlscripts 폴더를 만들고 실행할 모든 스크립트를 sqlscripts 폴더에 로드합니다. 일괄 처리 명령이 순회되어 새 sql에 추가됩니다.
2. 새로운 createsql.bat를 생성하세요
루트 디렉터리에 새 txt 파일을 만들고 이름을 creatsql.bat로 변경한 후 다음 내용을 복사합니다. 이 일괄 프로세스를 순회하여 bat.sql에 순차적으로 추가합니다.
으아악
참고: 테스트 중에 인코딩 문제가 발생하여 모든 배치 파일을 메모장++로 편집하고 인코딩 형식을 utf-8 대신 ANSI로 변경했습니다.
3. 새로운 update.bat를 생성하세요
루트 디렉터리에 새 txt 파일을 만들고 이름을 update.bat로 바꾼 후 다음 내용을 복사하세요. 이 배치 프로세스는 데이터베이스에 연결하고 새로 생성된 Batch.sql 파일을 실행합니다.
으아악
참고: 이 배치 linux 배치 실행 스크립트에서 호스트, 데이터베이스 이름/비밀번호 및 기타 정보와 같은 변수 값을 변경해야 합니다.
4. 일괄 처리 실행
createsql.bat를 실행시켜서 bat.sql이 제대로 실행되었는지 확인합니다. Update.bat가 정상적으로 실행되는지 확인합니다. 4. 구체적인 구현 방안 2
刚才介绍的思路是分为两步,先遍历并整合成一个sql脚本去执行。似乎还有一种方法就是逐字遍历的时侯linux 批量执行脚本,每取出一条就去执行一条。这样写一个批处理就可以搞定了。
具体实现:
新建update_each.bat,内容如下
::echo off @echo off :: 指定MySQL安装路径 :: C: :: cd C:Program FilesMySQLMySQL Server 5.7bin :: 数据库主机 @set host=192.10.120.101 :: 数据库名称 @set db=test :: 用户名 @set userName=root :: 密码 @set password=123456 :: 获取文件夹所在绝对路径 @set basePath=%~dp0 :: 要执行的sql脚本 @set sqlpath=%basePath%all.sql echo 开始执行数据库脚本... for %%i in (sqlscripts*.sql) do ( echo 正在执行 %%i 请稍后... echo set names utf8;>all.sql echo source %%i>>all.sql :: 连接MySQL数据库并执行sql脚本 -f 脚本执行过程中,出现错误继续执行 --default-character-set指定导入数据的编码(与数据库编码相同) mysql -f -h %host% -u %userName% --password=%password% %db% < %sqlpath% --default-character-set=gbk echo %%i 执行完毕。 ) del all.sql echo 所有脚本执行完毕。 pause
非常提示编码问题suse linux 下载,批处理命令是ANSI编码格式;sql脚本是UTF-8编码格式。
结束
위 내용은 (일일질문) mysql 데이터베이스 일괄 실행을 위한 솔루션 아이디어의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!