02.安装MySQL

安装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加入了全新的密码安全机制。设置新密码太简单会报错。

6.其他命令

# windows的启动与停止
mysqld --console  # 启动
mysqladmin -uroot shutdown  # 停止

# Linux的启动与停止
./mysqld_safe &   # 启动
./mysqladmin -u root -p shutdown   # 停止

7.特殊问题

MySQL5.7插入中文报错

现象

原因

MySQL5.7默认的字符集是latin1,不兼容中文,因为MySQL数据库是在瑞典那边开发的

解决

修改默认字符集,也就是配置文件my.ini,具体添加内容如下:

[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_cl

然后重启MySQL即可

MySQL8远程登陆报错

现象

有些图形化工具,特别是旧版本的图形化工具,在连接MySQL8的时候出现以下错误:

原因

出现这个问题的原因是在MySQL8之前的版本中加密规则而是mysql_native_password,而在MySQL8之后,加密规则是caching_sha2_password,在安装MySQL8的时候会有如下选项,选择了第一个就可能出现这个问题

解决思路
  • 第一种方案:升级图形化工具的版本
  • 第二种方案:把MySQL8用户登录密码加密规则还原成mysql_native_password
第二种方案

用命令行登录MySQL8后,执行如下命令修改用户密码加密规则并更新用户密码,这里修改用户名为“root@localhost”的用户密码规则为mysql_native_password,密码值为123456,如图所示

# 具体root后面是百分号还是localhost看具体情况
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';

MySQL5.7或8远程登录报错

现象

在用SQLyog或Navicat中配置远程连接Mysql数据库时遇到如下报错信息,这是由于MySQL配置了不支持远程连接引起的

当然远程登录失败也有可能是防火墙的问题,这个属于基础问题了,关一下就好,就不多说了

检查root用户可以允许那些IP登录

检查root用户可以允许那些IP登录,可以使用如下命令:

use mysql;

select Host,User from user;

显示结果如下:

这里的意思就是说root用户只能通过本机的客户端去访问

解决方案

修改Host为通配符%,表示所有IP都有连接权限

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置

update user set host = '%' where user ='root';
flush privileges;
  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值