Да да есть в мире "особенности" и нужно запускать майкрософт жырную базу в контенере....
- Run docker conteiner
-
By yaml docker-compose sqldata: image: mcr.microsoft.com/mssql/server:2019-latest environment: - SA_PASSWORD=Pass@word - ACCEPT_EULA=Y ports: - "5433:1433" volumes: - license-sqldata:/var/opt/mssql command: - /bin/bash - -c - | /opt/mssql/bin/sqlservr & pid=$$! echo "Waiting for MS SQL to be available" /opt/mssql-tools/bin/sqlcmd -l 30 -S localhost -h-1 -V1 -U sa -P $$SA_PASSWORD -Q "SET NOCOUNT ON SELECT \"YAY WE ARE UP\" , @@servername" is_up=$$? while [ $$is_up -ne 0 ] ; do echo -e $$(date) /opt/mssql-tools/bin/sqlcmd -l 30 -S localhost -h-1 -V1 -U sa -P $$SA_PASSWORD -Q "SET NOCOUNT ON SELECT \"YAY WE ARE UP\" , @@servername" is_up=$$? sleep 5 done wait $$pid
-
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" \ -p 1433:1433 --name sql1 -h sql1 \ -d mcr.microsoft.com/mssql/server:2019-latest
-
- Install tools to host, where run conteiners https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-ver15#RHEL
-
curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/msprod.repo sudo yum install mssql-tools unixODBC-devel curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/msprod.repo sudo yum install mssql-tools unixODBC-devel curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/msprod.repo sudo yum install mssql-tools unixODBC-devel sudo yum check-update sudo yum update mssql-tools echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
-
- Connect to MSDB
- By conteiner tool
-
#sudo docker exec -it $(docker ps| grep 2019 | awk '{print $1}') "bash" #sudo docker exec --user root -it $(docker ps| grep 2019 | awk '{print $1}') "bash" #/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Pass@word"
-
- BY MS STUDIO
- By hosts tools
-
sqlcmd -S 127.0.0.1,1433 -U SA -P "Pass@word
-
- By conteiner tool
- Change sa password
- sp_password @new = 'Sas5dfgdwerD0Avbcbvb_095074!!3C34', @loginame = 'sa'
go
exit
- sp_password @new = 'Sas5dfgdwerD0Avbcbvb_095074!!3C34', @loginame = 'sa'
- For example simple SELECT
-
GO SELECT name, database_id FROM sys.databases; GO
-
- RESTORE
-
By client sqlcmd on docker master DB="LicenseServerDB" DB_backUPname=$DB$(echo '_')$(date +"%y-%m-%d") sqlcmd -S 127.0.0.1,5433 -U SA -P "Pass@word" -Q "RESTORE DATABASE $DB FROM DISK = N'/var/opt/mssql/data/$DB_backUPname.bak' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"
-
- BACKUP
-
By client sqlcmd on docker master UserName='---------------' DB="LicenseServerDB" DB_backUPname=$DB$(echo '_')$(date +"%y-%m-%d").bak PassDB='-------------------------' FromHost='-----------------' FromHostDir='/var/lib/docker/volumes/deploy_license-sqldata/_data/data/' ToHost='--------------------------' ToHostDir='/tmp' sqlcmd -S $FromHost,5433 -U SA -P $PassDB -Q "BACKUP DATABASE [$DB] TO DISK = N'/var/opt/mssql/data/$DB_backUPname' WITH NOFORMAT, NOINIT, NAME = N'LicenseServerDB-FullDB_Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 " ll $FromHostDir | grep $DB_backUPname scp $FromHostDir/$DB_backUPname $UserName@$ToHost:/$ToHostDir ssh $UserName@$ToHost ToHostDir='/var/lib/docker/296608.296608/volumes/deploy_license-sqldata/_data/data' DB="LicenseServerDB" DB_backUPname=$DB$(echo '_')$(date +"%y-%m-%d").bak cp /tmp/$DB_backUPname $ToHostDir chmod -R 777 $ToHostDir/$DB_backUPname
-