赞
踩
系统版本:CentOS 7
Mysql版本:mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
1、 查看是否已经安装 Mysql
rpm -qa | grep mysql
如果没有什么返回信息,说明没有安装 Mysql
如图所示就是安装了MySQL
2、 查看是否已经安装 mariadb
CentOS 7可视化安装会默认安装该数据库,安装MySQL前需要卸载该数据库
rpm -qa | grep mariadb
删除mariadb数据库
rpm -e --nodeps mariadb-libs
1.1)首先打开MySQL官网,选择下载页面 (DOWNLOADS) ;
1.2)在下载页面选择社区版 (MySQL Community ),点击进入;
1.3)在社区版下载界面选择 MySQL Community Server
1.4)下载界面有新版和老版可以选择,我这里选择老版本。
1.5)在老版本界面中 Product Version 选择版本8.0.20; Operating System 选择系统 Linux - Generic ;OS Version 系统类型默认 ALL 即可;版本和系统根据需要自行选择。
首先启动我们Linux系统,通过Xshell远程连接到系统,然后打开Xftp软件,上传我们下载的MySQL安装包到 /usr/local/src 目录中。目录位置和安装位置大家可以自行选择
上传完成后通过命令进行解压。首先进入到文件目录 cd /usr/local/src。需要注意的是我们下载的文件格式是 tar.xz 结尾的,和老版本的 tar.gz 解压命令不一样。
使用 xz -d file.tar.xz 命令解压外围的 xz
通过 ls 命令查看外围的 xz 已经解压
使用 tar -xvf file.tar 命令解压tar 文件;
#重命名为 mysql-8.0.20
使用命令 mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0.20 修改文件名称;
MySQL 开在 root 上意味着它可以在系统的任何位置写任何文件,MySQL 开在 mysql 用户上,保证它对系统大部分位置不可写,从而 MySQL 即使被攻击,也可以限制它对整个系统的影响。
#检查 mysql 用户组是否存在
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
#创建用户组
groupadd mysql
# -r 参数表示 mysql 用户是系统用户,不可用于登录系统,创建用户 mysql 并将其添加到用户组 mysql 中
useradd -r -g mysql mysql
chown -R mysql /usr/local/src/mysql-8.0.20/ # 将文件的所有属性改为 mysql 用户
chgrp -R mysql /usr/local/src/mysql-8.0.20/ # 将组属性改为 mysql 组
mkdir -p /data/mysql #在根目录创建数据目录
chown mysql:mysql -R /data/mysql # 将文件的所有属性改为 mysql 用户
vi /etc/my.cnf
这是一个简单的模版
[mysqld] bind-address=0.0.0.0 #如果要远程控制,该设置就默认四个0 port=3306 user=mysql basedir=/usr/local/src/mysql-8.0.20 datadir=/data/mysql socket=/var/lib/mysql/mysql.sock log-error=/data/mysql/mysql.err pid-file=/data/mysql/mysql.pid #character config character_set_server=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true [client] port=3306 socket=/var/lib/mysql/mysql.sock #默认的客户端路径是/tmp/mysql.sock,不设置连接会报错
参数: --basedir 为mysql解压目录,–datadir 为mysql数据存放目录。(注意安装路径是否一致)
cd /usr/local/src/mysql-8.0.20/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/src/mysql-8.0.20/ --datadir=/data/mysql/ --user=mysql --initialize
通过命令查看
cat /data/mysql/mysql.err
也可以通过Xftp直接打开 mysql.err 文件查看
cp /usr/local/src/mysql-8.0.20/support-files/mysql.server /etc/init.d/mysql
service mysql start
3.4.2)方法二:
systemctl 管理MySQL服务
#在/usr/lib/systemd/system/路径下创建mysql.service vi /usr/lib/systemd/system/mysql.service [Unit] Description=MySQL server After=syslog.target network.target [Service] User=mysql Group=mysql Type=forking TimeoutSec=0 #PermissionsStartOnly=true #这里修改成你自己的解压目录 ExecStart=/usr/local/src/mysql-5.7.20/bin/mysqld --defaults-file=/etc/my.cnf --daemonize LimitNOFILE = 65535 Restart=on-failure RestartSec=3 RestartPreventExitStatus=1 PrivateTmp=false [Install] WantedBy=multi-user.target
重新加载systemd配置 systemctl daemon-reload 常用命令 启动mysql服务 systemctl start mysqld 停止mysql服务 systemctl stop mysqld 重新启动mysql服务 systemctl restart mysqld 查看mysql服务状态 systemctl status mysqld mysql服务加入自启动 systemctl enable mysqld 停止mysql服务自启动 systemctl disable mysqld 查询mysql服务是否开机自启动 systemctl is-enabled mysqld
如果不加入的话启动MySQL就使用以下方法,进入到MySQL的 support-files 的文件目录下
cd /usr/local/src/mysql-8.0.20/support-files/ #进入support-files目录下
./mysql.server start #开启MySQL服务
./mysql.server stop #关闭MySQL服务
登录之前一定要先启动MySQL服务
3.5.1)登录方式一
进入mysql安装文件的bin目录
cd /usr/local/src/mysql-8.0.20/bin/
./mysql -u root -p
输入数据库初始密码登录
3.5.1)登录方式二
配置环境变量
#打开~/.bashrc文件
vi ~/.bashrc
#在文件末尾加上以下行
export PATH=$PATH:/usr/local/src/mysql-5.7.20/bin
#使修改的环境变量生效
source ~/.bashrc
配置完成后不用到mysql目录下可以直接使用msyql -uroot -p命令登录
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ab123456';
show global variables like 'port';
如果端口号显示为 “ 0 ” ,检查配置文件 my.cnf 中是否有“skip-grant-tables”,注释掉该配置就可显示配置的端口号。
MySQL 异常: "Host 'xxx' is not allowed to connect to this MySQL server"
在使用工具远程连接MySQL数据库时报错,需要检查如下几个地方:
以下截图中的操作均在Centos7上进行。
1.1).查看防火墙状态的命令
systemctl status firewalld
防火墙原因造成的数据库端口不通有两种处理方式:
方法一、在开启防火墙的状态下,放开数据库使用端口;
#开启指定的端口号
firewall-cmd --add-port=3306/tcp --permanent
# 开启完成之后重新加载配置
firewall-cmd --reload
#关闭指定的端口号
firewall-cmd --remove-port=8080/tcp --permanent
# 关闭完成之后重新加载配置
firewall-cmd --reload
.查看防火墙规则
firewall-cmd --list-all # 查看全部信息
firewall-cmd --list-ports # 只看端口信息
方法二、直接关闭防火墙;
1.2).关闭防火墙命令
1.2.1)暂时关闭防火墙(使用 reboot 命令重启后会恢复到原来的状态)
systemctl stop firewalld
1.2.2)永久性关闭防火墙(重启将不会恢复到原来的状态,并且需要重启后(reboot 命令)才能生效)
systemctl disable firewalld
use mysql;
select host from user where user='root';
host设置为localhost表示,只有本地可以通过root用户访问数据库
host修改成%表示,所有主机都可以通过root用户访问数据库
update user set host = '%' where user = 'root';
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
参考示例
grant all PRIVILEGES on db_name.* to ‘username’@‘xxx.xxx.xx.x’ ;
all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。
db_name.* 表示上面的权限是针对于哪个表的,db_name指的是数据库名称,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授权为“数据库名.表名”。
username表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。
xxx.xxx.xx.x 表示允许远程连接的 IP 地址,你的IP,如果想不限制链接的 IP 则设置为“%”即可。
FLUSH PRIVILEGES;
1、找到对应linux的版本进行下载
[root@CentOS7 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
2、在MySQL官网社区版下载界面中找到 MySQL Yum Repository
3、选择系统对应的版本,点击 Downloads ,在弹出的界面如图所示选择后 复制链接地址
4、在centos系统中输入wget,然后粘贴复制的下载地址;
#使用wget下载mysql
wget https://repo.mysql.com//mysql84-community-release-el7-1.noarch.rpm
如果显示wget未找到命令,则需要先安装wget,然后再次执行上面命令;
yum -y install wget
结果图
通过yum安装方法,会直接添加mysql环境变量和启动服务
yum -y install mysql84-community-release-el7-1.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld #一定要启动服务!
systemctl status mysqld #查看服务状态
登录 MySQL 必须要通过密码,此时 root 用户的密码可以通过以下命令在日志文件中获取:
grep "password" /var/log/mysqld.log
系统版本:Windows10
Mysql版本:mysql-8.0.20-winx64.zip
1.1.1)在社区版下载界面选择 MySQL Community Server
1.1.2)选择下载版本,点击 Download 下载;
1.2.1)免安装版下载完成后直接解压
我这里解压到了C盘的mysql文件夹,我们解压的文件夹是没有ini文件和data目录,这时我们需要自己创建。
1.2.2)创建配置文件和data目录
配置ini文件,配置信息如下
[Client] #设置3306端口 port = 3306 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=C:\mysql # 设置mysql数据库的数据的存放目录 datadir=C:\mysql\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB early-plugin-load="" [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8
1.2.3)编辑 my.ini 文件,修改mysql安装目录及数据存放目录。
1.3.1)右键 此电脑 ,选择 属性 ,在弹出的界面选择 高级系统设置 。
1.3.2)在系统属性界面,选择 环境变量 ;
1.3.3)在环境变量界面中选择 系统变量 并 新建 ;
1.3.4)新建系统变量 MYSQL_HOME
1.3.5)在系统变量中选择 Path 变量,点击 ** 编辑** 。
1.3.6)并将 ;%MYSQL_HOME%\bin 添加到 Path 变量值后面,注意这里的标点符号为英文符号
mysqld --initialize-insecure --user=mysql #该命令要在bin目录下执行
进入bin目录并初始化MySQL
mysqld --install
net start mysql
这里不需要输入密码,直接按回车键即可
use mysql;
alter user 'root'@'localhost' identified by 'Ab123456';
系统版本:Windows10
Mysql版本:mysql-installer-community-8.0.37.0.msi
2.1.1)打开官网下载界面,点击MySQL Community(GPL)Downloads
2.1.2)选择 MySQL Installer for Windows
2.1.3)选择下载版本,点击 Download 下载;
2.1.4)点击No thanks, just start my download,这里可以跳过注册,直接下载。
选择 Server only ,点击 Next 。
点击 Next 。
选择 Execute 等待安装MySQL Server。
安装完成后点击 Next 。
这里默认即可,点击 Next 。
设置 root 用户密码,密码规则按照上一步选择的模式进行设置,如果需要新增用户可以在下面设置,点击 Next 。
User Name:账号名称;
Host:需要远程连接默认即可,只要本地连接就选“localhost”;
Role:角色,下拉可以选择不同的权限角色。
点击 Next 。
点击 Next 。
选择 Execute 。
完成后,选择 Finish 。
点击 Next 。
点击 Finish ,完成安装。
本地测试:
远程连接测试:
安全策略参数和常见等级:
1、Mysql8.X常见安全策略参数
validate_password.dictionary_file #指定密码验证的文件路径;
validate_password.length #固定密码的总长度,默认为8;
validate_password.mixed_case_count #整个密码中至少要包含大/小写字母的总个数;
validate_password.number_count #整个密码中至少要包含阿拉伯数字的个数;
validate_password.policy #指定密码的强度验证等级,默认为 MEDIUM;
validate_password.special_char_count #整个密码中至少要包含特殊字符的个数;
指定密码的强度验证等级validate_password.policy 取值:
0/LOW #只验证长度;
1/MEDIUM #验证长度、数字、大小写、特殊字符;
2/STRONG #验证长度、数字、大小写、特殊字符、字典文件;
2、查看MySQL安全策略
show variables like 'validate%';
3、修改安全策略
如果MySQL还是初始密码,要先按照安全策略设置强密码,然后再修改策略;
set global 常见安全策略参数=安全策略值;
4、改完密码策略,就可以根据自己修改的策略,更改匹配策略的MySQL登录密码了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。