https://blog.csdn.net/weixin_41657031/article/details/106882429
https://blog.csdn.net/m0_57165777/article/details/127977315?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-127977315-blog-103183052.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-127977315-blog-103183052.pc_relevant_default&utm_relevant_index=5引用mysql
安装MySQL
更新列表
sudo apt-get update
sudo apt-get upgrade
安装MySQL服务器
sudo apt-get install mysql-server
/*在安装过程中,系统将提示您创建root密码。选择一个安全的,并确保记住它,因为后面需要用到这个密码。*实际操作中并未要求我创建密码/
安装MySQL客户端
sudo apt-get install mysql-client
mysql-server和mysql-client区别
mysql-server 是MySQL核心程序将安装MySQL数据库服务器,用于生成管理多个数据库实例,持久保存数据并为其提供查询接口(SQL),供不同客户端调用。
mysql-client 是操作数据库实例的工具,允许连接到MySQL服务器使用该查询接口。它将为您提供MySQL命令行程序。
如果只需要连接到远程服务器并运行查询,只安装mysql-client就可以了。如果是服务器只提供连接服务的只需要安装mysql-server
配置MySQL
运行MySQL初始化安全脚本
sudo mysql_secure_installation
系统将要求您配置VALIDATE PASSWORD PLUGIN用来测试MySQL用户密码强度并提高安全性的密码:
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: y
密码验证策略分为三个级别:低,中和强。按下y如果你想设置的验证密码插件或任何其他键移动到下一个步骤:
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
在下一个提示符下,将要求您设置MySQL root用户的密码:
Please set the password for root here.
New password:
Re-enter new password:
如果您设置了验证密码插件,该脚本将向您显示新密码的强度。键入y以确认密码:
Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
mysql_secure_installation脚本设置的东西:更改root密码、移除MySQL的匿名用户、禁止root远程登录、删除test数据库和重新加载权限。除了询问是否要更改root密码时,看情况是否需要更改,其余的问题都可以按Y,然后ENTER接受所有后续问题的默认值。使用上面的这些选项可以提高MySQL的安全。
测试MySQL
无论你如何安装它,MySQL应该已经开始自动运行。要测试它,请检查其状态。
sudo systemctl status mysql.service
将看到类似于以下内容的输出:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2016-11-23 21:21:25 UTC; 30min ago
Main PID: 3754 (mysqld)
Tasks: 28
Memory: 142.3M
CPU: 1.994s
CGroup: /system.slice/mysql.service
└─3754 /usr/sbin/mysqld
MySQL数据库基本使用
我们已经向您展示了如何在Ubuntu 20.04上安装MySQL。现在您的数据库服务器已启动并正在运行,下一步是学习如何管理MySQL用户帐户和数据库。
启动MySQL数据库服务
sudo service mysql start
或
sudo systemctl start mysql.service
重启MySQL数据库服务
sudo service mysql restart
或
sudo systemctl restart mysql.service
停止MySQL数据库服务
sudo service mysql stop
或
sudo systemctl stop mysql.service
查看MySQL运行状态
sudo service mysql status
或
sudo systemctl status mysql.service
设置MySQL服务开机自启动
sudo service mysql enable
或
sudo systemctl enable mysql.service
停止MySQL服务开机自启动
sudo service mysql disable
或
sudo systemctl disable mysql.service
配置MySQL远程登录
有时候,为了开发方便,我们需要使用本地电脑远程访问和管理MySQL数据库。默认情况下,为了安全MySQL只允许本地登录,如果要开启远程连接,则需要修改MySQL的配置文件
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
打开配置文件,找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0即可或简单一点注释掉也行
修改完成保存后,需要重启MySQL服务才会生效
接着需要为用户赋予远程登录的权限,使用以下用户授权步骤即可
systemctl和service的区别
Linux 服务管理两种方式service和systemctl,以前都用service命令管理mysql,现在liunx系统升级了,又有了新的更好的方法管理系统进程,现在使用systemctl命令管理mysql。
service是一个脚本命令,分析service可知是去/etc/init.d目录下执行相关程序。service和chkconfig结合使用。
服务配置文件存放目录/etc/init.d/
Systemd是一个系统管理守护进程、工具和库的集合,是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。
Systemd对应的进程管理命令是systemctl,主要负责控制Systemd系统和服务管理器。同时兼容service命令。
在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。Systemd通常是所有其它守护进程的父进程,但并非总是如此。
MySQL创建用户与授权
以root身份登录
要从命令行与MySQL服务器进行交互,请使用MySQL客户端实用程序,该实用程序是作为MySQL服务器软件包的依赖项安装的。
在MySQL 8.0上,auth_socket默认情况下,root用户通过插件进行身份验证。
该auth_socket插件对localhost通过Unix套接字文件从进行连接的用户进行身份验证。这意味着您不能通过提供密码来以root用户身份进行身份验证。
要以root用户身份登录到MySQL服务器,请输入:
sudo mysql
将为您提供MySQL Shell,如下所示:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.19-0ubuntu5 (Ubuntu)
Copyright (c) 2000, 2020, 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.
mysql>
如果要使用外部程序(例如phpMyAdmin)以root用户身份登录到MySQL服务器,则有两个选择。
第一个是将身份验证方法从更改auth_socket为mysql_native_password。您可以通过运行以下命令来做到这一点:
mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
mysql > FLUSH PRIVILEGES;
推荐的第二个选项是创建一个新的专用管理用户,该用户可以访问所有数据库:
GRANT ALL PRIVILEGES ON *.* TO 'administrator'@'localhost' IDENTIFIED BY 'very_strong
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名
如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
# 创建镜像
git clone https://github.com/4x99/code6.git
cd code6 && docker build -t code6 .
# 启动容器(宿主机映射端口 666 与 MySQL 连接参数请根据情况修改,容器启动将自动连接 MySQL 并导入数据表)
docker run -d \
-p 666:80 \
-e MYSQL_HOST=172.17.0.1 \
-e MYSQL_PORT=3306 \
-e MYSQL_DATABASE=code6 \
-e MYSQL_USERNAME=xxx \
-e MYSQL_PASSWORD=xxxxxx \
--name code6-server code6
# 进入容器创建用户
docker exec -it code6-server /bin/bash
php artisan code6:user-add <邮箱> <密码>
这里git clone https://github.com/4x99/code6.git拉去镜像时 提示http2出错
通过如下设置git配置,尝试强制git使用HTTP 1.1
git config--global http.version HTTP/1.1
如果你想把它设置回HTTP2,你也可以这样做
git config--global http.version HTTP/2
创建账户密码时报错sql账户登陆不上,找不到code6.sql表
解决方法:
mysql> create user 'xxx'@'172.17.0.2' identified by 'xxxxx';
Query OK, 0 rows affected (0.00 sec)
mysql> create database code6;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| code6 |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> grant all on *.* to 'xxx'@'172.17.0.2';
Query OK, 0 rows affected (0.00 sec)
#通过docker stop xxxx停止docker,然后重设置解决
-e MYSQL_USERNAME=xxx \
-e MYSQL_PASSWORD=xxxxx \
做完以上的工作就可以通过 http://<宿主机 IP>:666 访问系统。
进入系统申请令牌
https://github.com/settings/tokens/new
配置令牌
其他说明
1、建议至少配置 5 个令牌
2、不能用同一个 GitHub 账号创建多个令牌(这些令牌共享账号配额)
3、码小六在进行扫描任务时会自动检测更新令牌配额并进行调度
4、若令牌状态时而正常时而异常有可能是因为请求 GitHub 网络不通畅造成(可忽略)
开始使用
接下来可以到 [ 任务配置 ] 模块设置扫描任务啦!
关键字的选择
公司邮箱后缀、域名、项目标识是不错的选择,如果能在公司推行安全规范,在每个项目工程内放置唯一标识,并将此标识作为扫描关键字便能实现精准监控。
扫描结果存储
扫描结果存储入库目前支持以下选项:
1、记录文件的每个版本:即文件每次提交(包含关键字)会产生一条新的未审记录
2、一个文件只记录一次
3、一个仓库只记录一次
如果只关注项目维度选择“一个仓库只记录一次”即可,这样会大大减少需要审核的结果记录。
扫描结果
码小六的 [ 扫描结果 ] 模块显示了匹配到关键字的扫描记录,可以将这些记录设置为以下状态:
未审:未审核的记录
误报:已确认正常的记录
异常:已确认异常的记录
解决:异常且已处理的记录
结果处理
如果通过 GitHub 个人主页、代码或 Commit 记录中能找到仓库拥有者的联系方式,可以直接联系处理。如果联系不上,则只能通过 GitHub DMCA (数字千年版权法),写邮件给 GitHub 申请下架仓库(建议各在公司内建立相关预案以便能快速处理此类问题),帮助文档:
https://help.github.com/en/github/site-policy/guide-to-submitting-a-dmca-takedown-notice