安装MySQL
1.Windows使用压缩包安装MySQL8
下载安装包
地址:https://downloads.mysql.com/archives/community/
解压安装包在没有中文和空格的目录下
省略
在解压目录创建my.ini文件并添加内容如下
不创建也是可以的,让它用默认的
配置环境变量
省略
初始化生成临时密码
这一步完成后会在目录下生成data目录,如果忘记了临时密码可以删除data目录重新走一遍这个步骤
mysqld --initialize --user=mysql --console
安装服务
把MySQL安装为Windows服务,具体命令如下:
mysqld --install
启动与停止MySQL
net start mysql
net stop mysql
登录
这里需要使用之前生产的临时密码
mysql -u root –p
修改root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
修改root用户权限
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
开机自动启动MySQL
mysqld -nt --install
2.Windows使用安装程序安装MySQL8
下载安装程序
上面的是在线安装版本,下面是整个安装包,支持离线安装
下载地址:https://downloads.mysql.com/archives/installer/
按步骤下一步即可
3.Linux安装MySQL前言
Linux系统下安装官方给出多种安装方式
安装方式 | 特点 |
---|---|
rpm | 安装简单,灵活性差,无法灵活选择版本、升级 |
rpm repository | 安装包极小,版本安装简单灵活,升级方便,需要联网安装 |
通用二进制包 | 安装比较复杂,灵活性高,平台通用性好 |
源码包 | 安装最复杂,时间长,参数设置灵活,性能好 |
官网下载地址
https://downloads.mysql.com/archives/community/
4.Centos7安装MySQL5.7使用RPM的方式
卸载MysQL的npm包
rpm -qa | grep -i mysql
rpm -e 上一步查询出来的npm包名 --nodeps
rpm -qa|grep mariadb
rpm -e 上一步查询出来的npm包名 --nodeps
获取安装包
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar
解压tar包
tar -xvf tar包名字
安装common
rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
安装libs
rpm -ivh --force --nodeps mysql-community-libs-5.7.35-1.el7.x86_64.rpm
安装client
rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
安装server
rpm -ivh mysql-community-server-5.7.35-1.el7.x86_64.rpm
修改文件跳过检验
vi /etc/my.cnf
# 在[mysqld]下添加这个配置
skip-grant-tables
启动MySQL
systemctl start mysqld.service
进入MySQL修改root用户密码
# 进入MySQL
mysql
# 修改root用户密码
update mysql.user set authentication_string=password('123456') where user='root';
# 刷新
flush privileges;
# 停止MySQL服务
systemctl stop mysqld.service
# 把添加的skip-grant-tables去掉
# 设置开机启动MySQL
systemctl enable mysqld.service
# 启动MySQL服务
systemctl start mysqld.service
设置简单密码
线上不要这么干
set global validate_password_policy=LOW;
set global validate_password_length=4;
set password=password('123456');
设置远程连接
# 防火墙永久开启3306端口并重启
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
# 进入MySQL开启远程登录
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
5.Centos7安装MySQL8使用RPM仓库的方式
移除mariadb
yum remove mariadb-libs.x86_64
建立目录
mkdir /etc/mysql
cd /etc/mysql
下载rpm包
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
添加到本地
yum localinstall mysql80-community-release-el7-3.noarch.rpm
正式安装
yum install mysql-community-server
启动
service mysqld start # 启动
service mysqld status # 状态
service mysqld stop # 停止
查看默认密码并且登录
# 查看默认密码
cat /var/log/mysqld.log | grep password
# 登录
mysql -u root -p
修改密码
set global validate_password.policy=0;
set global validate_password.length=1;
alter user "root"@"localhost" identified by "123456"
exit
下载示例数据库
wget https://downloads.mysql.com/docs/airport-db.tar.gz
6.Centos7安装MySQL8使用RPM的方式
获取安装包并解压
# 获取
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar
# 解压
tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar
CentOS7下检查MySQL依赖
检查/tmp临时目录权限(必不可少)
由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限
chmod -R 777 /tmp
安装前检查依赖
rpm -qa|grep libaio
rpm -qa|grep net-tools
rpm -qa|grep net-tools
安装MySQL
在MySQL的安装文件目录下执行(必须按照顺序执行)
rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm
如果报错清除之间安装过的依赖
yum remove mysql-libs
查看MySQL版本
mysql --version
# 或
mysqladmin --version
查看是否安装成功
rpm -qa|grep -i mysql
查看临时的root密码
介绍
为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
命令
mysqld --initialize --user=mysql
说明
–initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将 该密码标记为过 期 ,登录后你需要设置一个新的密码。生成的 临时密码 会往日志中记录一份
查看密码
cat /var/log/mysqld.log
启动MySQL
MySQL服务相关命令
#加不加.service后缀都可以
启动:systemctl start mysqld.service
关闭:systemctl stop mysqld.service
重启:systemctl restart mysqld.service
查看状态:systemctl status mysqld.service
查看MySQL服务是否自启动
systemctl list-unit-files|grep mysqld.service
自动启动相关命令
# 开机启动
systemctl enable mysqld.service
# 开机不启动
systemctl disable mysqld.service
使用root用户登录MySQL后修改密码
# 登录MySQL
mysql -u root -p
# 修改密码,因为初始化密码默认是过期的,所以查看数据库会报错
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
# 注意
5.7版本之后(不含5.7),mysql加入了全新的密码安全机制。设置新密码太简单会报错。
设置远程登录
介绍
关闭防火墙与开放端口二选一即可
防火墙相关命令
# 启动防火墙
systemctl start firewalld.service
# 查看防火墙状态
systemctl status firewalld.service
# 停止防火墙
systemctl stop firewalld.service
# 开机自启防火墙
systemctl enable firewalld.service
# 开机不自启防火墙
systemctl disable firewalld.service
开放端口
# 查看开放的端口号
firewall-cmd --list-all
# 设置开放的端口号
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=3306/tcp --permanent
# 重启防火墙
firewall-cmd --reload
设置MySQL的root用户允许远程登陆
执行以下命令查看:
use mysql;
select Host,User from user;
可以看到root用户的当前主机配置信息为localhost
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只
能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而 %是个 通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连
接。如果 Host=% ,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产
环境的IP进行设置。
update user set host = '%' where user ='root';
Host修改完成后记得执行flush privileges使配置立即生效:
flush privileges;
MySQL8的密码加密问题
注意:如果是 MySQL5.7 版本,完成上面那些步骤接下来就可以使用SQLyog或者Navicat成功连接至MySQL了。MySQL8还有问题
使用远程工具连接MySQL8错误号码2058/2059,可以Linux下 mysql -u root -p 登录你的 mysql 数据库,然后 执行这条SQL:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root密码';
7.Linux下卸载MySQL
关闭MySQL服务
systemctl stop mysqld.service
查看当前MySQL安装状况
rpm -qa | grep -i mysql
# 或
yum list installed | grep mysql
卸载上述命令查询出的已安装程序
务必卸载干净,反复执行 rpm -qa | grep -i mysql 确认是否有卸载残留
yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx
删除MySQL相关文件
# 1.查找相关文件
find / -name mysql
# 2.删除上述命令查找出的相关文件
rm -rf xxx
# 3.删除 my.cnf
rm -rf /etc/my.cnf
7.其他命令
# windows的启动与停止
mysqld --console # 启动
mysqladmin -uroot shutdown # 停止
# Linux的启动与停止
./mysqld_safe & # 启动
./mysqladmin -u root -p shutdown # 停止