文章目录
1.准备Linux服务器
1.1.安装Linux虚拟机
-
下载Linux发行版Centos iso镜像
我们日常使用较多的是Windows系统,但是它却不是优秀的服务器操作系统。因此,本地进行开发时,推荐将应用部署在Linux上。 -
安装VirtualBox
VirtualBox下载:https://www.virtualbox.org/ -
安装Xshell
用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。虽然在虚拟机里也可以进行操作,但体验并不好。例如当我们所使用的是云服务器时,直接使用Xshell连接服务器便可进行远程操作,而不需要去打开云服务器的管理界面,同时还免去每次都要输入账号密码的麻烦。
1.2.购买腾讯云
首先进入腾讯云的官网:https://cloud.tencent.com/?fromSource=gwzcw.150044.150044.150044 注册后进行认证。
认证完了后选择 产品 - 云服务器 。如下图:
2.安装Docker
2.1.使用yum命令在线安装
yum install docker
2.2.安装后查看Docker版本
docker -v
2.3.启动与停止Docker
启动docker:service docker start
停止docker:service docker stop
重启docker:service docker restart
查看docker状态:service docker status
开机启动:chkconfig docker on
3.安装mysql
3.1.搜索镜像
docker hub上面查找mysql镜像
docker search mysql
[root@localhost ~]# docker search mysql
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati... 8458 [OK]
docker.io docker.io/mariadb MariaDB is a community-developed fork of M... 2914 [OK]
docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 626 [OK]
docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li... 60 [OK]
docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 59
docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 49
docker.io docker.io/deitch/mysql-backup Automated and scheduled mysql database dum... 40 [OK]
docker.io docker.io/tutum/mysql Base docker image to run a MySQL database ... 32
docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 29 [OK]
docker.io docker.io/schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic back... 28 [OK]
docker.io docker.io/linuxserver/mysql A Mysql container, brought to you by Linux... 21
docker.io docker.io/prom/mysqld-exporter 20 [OK]
docker.io docker.io/centos/mysql-56-centos7 MySQL 5.6 SQL database server 15
docker.io docker.io/circleci/mysql MySQL is a widely used, open-source relati... 13
docker.io docker.io/mysql/mysql-router MySQL Router provides transparent routing ... 12
docker.io docker.io/arey/mysql-client Run a MySQL client from a docker container 10 [OK]
docker.io docker.io/imega/mysql-client Size: 36 MB, alpine:3.5, Mysql client: 10.... 6 [OK]
docker.io docker.io/openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima... 6
docker.io docker.io/yloeffler/mysql-backup This image runs mysqldump to backup data u... 6 [OK]
docker.io docker.io/fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron t... 4 [OK]
docker.io docker.io/genschsa/mysql-employees MySQL Employee Sample Database 2 [OK]
docker.io docker.io/jelastic/mysql An image of the MySQL database server main... 1
docker.io docker.io/ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 0 [OK]
docker.io docker.io/monasca/mysql-init A minimal decoupled init container for mysql 0
docker.io docker.io/widdpim/mysql-client Dockerized MySQL Client (5.7) including Cu... 0 [OK]
3.2.拉取镜像
[root@localhost ~]# docker pull docker.io/mysql
Using default tag: latest
Trying to pull repository docker.io/library/mysql ...
latest: Pulling from docker.io/library/mysql
0a4690c5d889: Pull complete
98aa2fc6cbeb: Pull complete
0777e6eb0e6f: Pull complete
2464189c041c: Pull complete
b45df9dc827d: Pull complete
b42b00086160: Pull complete
bb93567627c7: Pull complete
bda91ab2ec35: Pull complete
50b4c0c50b33: Pull complete
70c2999bc788: Pull complete
3cf3e568e51b: Pull complete
c80d654aa77e: Pull complete
Digest: sha256:b1b2c176a45f4ff6875d0d7461fe1fdd8606deb015b38b69545f72de97714efd
Status: Downloaded newer image for docker.io/mysql:latest
3.3.查看镜像
[root@localhost ~]# docker images mysql
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql latest 2151acc12881 Less than a second ago 445 MB
docker.io/mysql <none> 7bb2586065cd 2 months ago 477 MB
3.4.启动镜像
使用mysql镜像
docker exec -it MySQL运行成功后的容器ID /bin/bash
docker run -di --name mysql_0803 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
3.5.进入MySQL容器,登陆MySQL
进入mysql容器
docker exec -it mysql_0803 /bin/bash
登陆mysql
mysql -u root -p
外部Win10也来连接运行在dokcer上的mysql服务
我们在我们本机的电脑上去连接虚拟机Centos中的Docker容器,这里192.168.247.130是虚拟机操作系统的IP
关闭防火墙
firewall-cmd --state
service firewalld stop
firewall-cmd --state
3.6.Mysql连接权限
原因:mysql 8.0 默认使用 caching_sha2_password 身份验证机制;客户端不支持新的加密方式。
解决方案:
修改用户(root)的加密方式
步骤1:进入mysql容器内部
[root@localhost ~]# docker exec -it mysql01 bash ## mysql01是容器的别名,这里也可以用容器的id代替
步骤2:登录mysql
root@e285125c99d6:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.13 MySQL Community Server - GPL
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
步骤3:设置用户配置项
- 查看用户信息
mysql> select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host | user | plugin | authentication_string |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| % | root | caching_sha2_password | $A$005$HF7;krfwhkKHp5fPenQm4J2dm/RJtbbyjtCUVdDCcboXQw3ALxsif/sS1 |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码
- 修改加密方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; ### 123456 mysql的登录密码
flush privileges;
然后再查看用户信息
mysql> select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host | user | plugin | authentication_string |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| % | root | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)
- 测试:连接成功
4.安装redis
4.1.拉取Redis镜像
[root@localhost ~]# docker pull redis
Using default tag: latest
Trying to pull repository docker.io/library/redis ...
latest: Pulling from docker.io/library/redis
f5d23c7fed46: Pull complete
831c20fd50cb: Pull complete
bc2a0f25caa5: Pull complete
745ac314a007: Pull complete
6deeca231441: Pull complete
6291e84f5373: Pull complete
Digest: sha256:854715f5cd1b64d2f62ec219a7b7baceae149453e4d29a8f72cecbb5ac51c4ad
Status: Downloaded newer image for docker.io/redis:latest
4.2.创建Redis容器
[root@localhost ~]# docker run -di --name=my_redis -p 6388:6379 redis
f0980b9a56e90a5c3564591f9dfb1c7ecf1f9223d85c011d3aea41aeb14c9d27
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f0980b9a56e9 redis "docker-entrypoint..." 8 seconds ago Up 7 seconds 0.0.0.0:6388->6379/tcp my_redis
4.3.客户端测试
在你的本地电脑命令提示符下,用window版本redis测试
5 开发环境统一
5.1 Maven
配置阿里云镜像
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
配置 jdk 1.8 编译项目
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
5.2 Idea&VsCode
idea 安装 lombok、mybatisx插件 Translation插件 等等…
Vscode 安装开发必备插件
Vetur ——语法高亮,智能感知 包含格式化功能,Alt+Shift+F (格式化全文) ,Ctrl+K Ctrl+F (格式化选中代码,两个Ctrl需要同时按着)
EsLint 一一 语法纠错
Auto Close Tag 一一 自动闭合HTML/XML标签
Auto Rename Tag 一一 自动完成另-侧标签的同步修改
JavaScript(ES6) code snippets 一一 ES6 语法智能提示以及快速输入,除j外还支持.ts, .jsx, .tsx, .html, .vue;省去了配置其支持各种包含is代码文件的时间