wsl --set-version Ubuntu-18.04 2
(这条命令只有内部预览版才有效)wsl -l -v
查看wsl版本PS C:\Users\L1yp> wsl -l -v
NAME STATE VERSION
* Ubuntu-18.04 Running 2
docker-desktop Running 2
docker-desktop-data Running 2
下载地址:https://liangyongpeng.com/html/download.html?last_id=0&pid=2
官方下载可能有点慢。
sudo cp /etc/apt/source.list /etc/apt/source.list.back
vim /etc/apt/source.list
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu bionic stable
# deb-src [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu bionic stable
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce
mkdir /lyp/home/mysql
cd /lyp/home/mysql
mkdir master slave-01 slave-02
mkdir master/data master/log master/config master/mysql-files
mkdir slave-01/data slave-01/log slave-01/config slave-01/mysql-files
mkdir slave-02/data slave-02/log slave-02/config slave-02/mysql-files
[client]
port=3306
[mysql]
no-auto-rehash
default-character-set=utf8mb4
max_allowed_packet=524288000
[mysqld]
server-id=1
max_allowed_packet=524288000
port=3306
secure_file_priv=/var/lib/mysql
datadir=/var/lib/mysql
character-set-server=utf8mb4
init_connect = 'SET NAMES utf8mb4'
default-storage-engine=INNODB
max_connections=512
tmp_table_size=18M
thread_cache_size=8
myisam_max_sort_file_size=64G
myisam_sort_buffer_size=35M
key_buffer_size=25M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=47M
innodb_log_file_size=24M
innodb_thread_concurrency=8
log_bin=on
log-bin=mysql-bin
binlog-do-db=tencent
binlog-do-db=blog
sync_binlog = 1
binlog_checksum=none
binlog_format = mixed
docker run
--name mysql-master
-p 3307:3306
-e MYSQL_ROOT_PASSWORD=root
-v /home/lyp/mysql/master/data:/var/lib/mysql:rw
-v /home/lyp/mysql/master/log:/var/log/mysql:rw
-v /home/lyp/mysql/master/config/my.cnf:/etc/mysql/my.cnf:rw
-v /home/lyp/mysql/master/mysql-files:/var/lib/mysql-files
-d mysql
--lower_case_table_names=1
docker run \
-p 3307:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-v /home/lyp/mysql/master/data:/var/lib/mysql:rw \
-v /home/lyp/mysql/master/log:/var/log/mysql:rw \
-v /home/lyp/mysql/master/config/my.cnf:/etc/mysql/my.cnf:rw \
-v /home/lyp/mysql/master/mysql-files:/var/lib/mysql-files \
--name mysql-master \
--restart=always \
-d mysql
docker run \
-p 3308:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-v /home/lyp/mysql/slave-01/data:/var/lib/mysql:rw \
-v /home/lyp/mysql/slave-01/log:/var/log/mysql:rw \
-v /home/lyp/mysql/slave-01/config/my.cnf:/etc/mysql/my.cnf:rw \
-v /home/lyp/mysql/slave-01/mysql-files:/var/lib/mysql-files \
--name mysql-slave-01 \
--restart=always \
-d mysql
docker run \
-p 3309:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-v /home/lyp/mysql/slave-02/data:/var/lib/mysql:rw \
-v /home/lyp/mysql/slave-02/log:/var/log/mysql:rw \
-v /home/lyp/mysql/slave-02/config/my.cnf:/etc/mysql/my.cnf:rw \
-v /home/lyp/mysql/slave-02/mysql-files:/var/lib/mysql-files \
--name mysql-slave-02 \
--restart=always \
-d mysql
如果期间报错,通过docker logs [容器名称] 查看日志,
如MySQL主机登录不了,可能是创建失败,通过
docker logs mysql-master
查看日志,可能是端口已被占用,或者文件夹映射问题,对应日志去搜索解决方案
docker exec -it mysql-master /bin/bash
,登入MySQL主机mysql -uroot -proot
,登入MySQLCREATE USER 'repl'@'%' IDENTIFIED BY 'repl';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
SHOW MASTER STATUS
查看binlog状态File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
---|---|---|---|---|
mysql-bin.000004 | 151 | tencent,blog |
File 代表binlog文件名
Position 代表binlog 偏移
Binlog_Do_DB 列代表要同步的数据库
\q
退出 MySQLexit
推出容器docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql-master
查看MySQL主机的IP地址,也就是MASTER_HOST的值docker exec -it mysql-slave-01 /bin/bash
,登入MySQL主机mysql -uroot -proot
,登入MySQLCHANGE MASTER TO \
MASTER_HOST='172.17.0.2', \
MASTER_USER='repl', \
MASTER_PASSWORD='repl', \
MASTER_LOG_FILE='mysql-bin.000004', \
MASTER_LOG_POS=151, \
get_master_public_key=1;
show slave status
,查看从机状态start slave
,开启从机同步异常情况
stop slave
停止同步reset slave
重置同步信息show slave status
查看错误信息blog
CREATE DATABASE
blog DEFAULT CHARACTER SET UTF8MB4 COLLATE UTF8MB4_BIN;
mysqldump --databases db1 db2 --master-data > dump.sql
mysql -uroot -proot < dump.sql
下载单个文件
scp root@目标服务器内网ip:/home/jdk.tar.gz /home
下载文件夹
scp -r root@目标服务器内网ip:/home/目录 /home
FLUSH PRIVILEGES
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
C:\Users\[电脑用户名]\.ssh\id_rsa.pub
Win10中使用ssh免密登录置云服务器,执行ssh root@xxx,PS提示BAD PERMISSIONS
相关信息。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\\Users\\Administrator/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "C:\\Users\\Administrator/.ssh/id_rsa": bad permissions
解决办法:
下载GitHub上的项目:openssl-portable
用管理员身份打开PS,进入 [openssl-portable]\contrib\win32\openssh
执行 .\FixUserFilePermissions.ps1 -Confirm:$false
无法加载文件XXX
,需要先执行 Set-ExecutionPolicy RemoteSigned
再次ssh root@xx即可免密登录服务器
来源地址:https://zixizixi.cn/windows_vscode_ssh_error_bad-owner-or-permissions
cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.22.0.1