【MySQL 入门】MySQL 5/8 两种OS部署 2019_12_30

Windows 10

8.0+ MySQL离线安装ZIP

1.下载zip文件

在MySQL官网,Windows(x86,64-bit),ZIP Archive
注:非第二个——Debug Binaries & Test Suite

2.新建初始化配置文件my.ini

需要修改:C:\mysql\mysql-8.0.11
绝对地址路径,你zip文件解压的路径更改到下面对应部分
建议:文件层级为

MySQLmysql-8.0.11
sqldata
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\\Program Files\\MySQL\\mysql-8.0.16-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=D:\\Program Files\\MySQL\\mysql-8.0.16-winx64\\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置SQL模式
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 设置时区
default-time-zone = '+8:00'

3.初始化数据库

管理员身份打开 cmd 命令行工具,切换目录:到bin目录

>盘符(d:\ ) 【直接cd跨盘符绝对路径是不被识别的】
>cd 绝对路径(cd D:\Program Files\MySQL\mysql-8.0.16-winx64\bin)
>mysqld --initialize --console

记得保存临时密码:
2019-06-14T06:26:12.107918Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: [???]

4.注册启动MySQL服务

注意!!!管理员管理员管理员

在3的基础上继续输入以下命令
>mysqld --install
>net start mysql
>net stop mysql

安装MySQL服务
启动MySQL服务

5.登录MySQL数据库

>mysql -h 主机名 -u 用户名 -p
-h : 指定所要登录的MySQL主机名, 登录本机(localhost或 127.0.0.1)可省略;
-P : 端口号
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 如果登录用户密码为空, 可忽略。

6.修改root临时密码

8.0版本之前与8.0版本之后的root用户密码的设置方式不同【安装完后,生成临时密码,登入后修改】

mysql> ALTER USER "root"@"localhost" IDENTIFIED  BY "你的新密码";

7.修改远程登陆权限

8.0版本:
mysql> use mysql;
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '********';
mysql> flush privileges;

8.修改时区

持久化修改

1.my.ini 配置文件【需重启】

[mysqld]
default-time-zone = '+8:00'

2.命令参数写入,自MySQL 8.0 GA版本开始支持将

mysql> set persist time_zone='+0:00';

非持久化修改

1.数据库本次运行临时设置

mysql> set time_zone='+8:00';

2.客户端URL修改

jdbc:mysql://127.0.0.1:3306/jdbc?serverTimezone=GMT%2B8

验证修改
mysql> select version();

mysql> show variables like '%time_zone%';

mysql> select now();

9.修改字符集

[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8

CentOS 7

5.7+ MySQL离线安装RPM

【安装完后首次调用mysqladmin】:

[root@localhost opt]# mysqladmin -u root password 'Root123456'

1.下载rpm文件

MySQL官网:https://www.mysql.com
下载首页:https://dev.mysql.com/downloads/mysql/

Redhat / CentOS 7 RPM
8.0.17:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar
5.7.27:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar

Generic Linux
8.0.17:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
5.7.27:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz

mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz 文件列表
mysql-community-client-5.7.27-1.el7.x86_64.rpm
mysql-community-common-5.7.27-1.el7.x86_64.rpm
mysql-community-devel-5.7.27-1.el7.x86_64.rpm
mysql-community-embedded-5.7.27-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.27-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.27-1.el7.x86_64.rpm
mysql-community-libs-5.7.27-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm
mysql-community-server-5.7.27-1.el7.x86_64.rpm
mysql-community-test-5.7.27-1.el7.x86_64.rpm

**mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar **文件列表
mysql-community-client-8.0.17-1.el7.x86_64.rpm
mysql-community-common-8.0.17-1.el7.x86_64.rpm
mysql-community-devel-8.0.17-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.17-1.el7.x86_64.rpm
mysql-community-libs-8.0.17-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.17-1.el7.x86_64.rpm
mysql-community-server-8.0.17-1.el7.x86_64.rpm
mysql-community-test-8.0.17-1.el7.x86_64.rpm

2.检测已有冲突及文件权限

2.1、CentOS6
rpm -qa | grep mysql

2.2、CentOS7
rpm -qa | grep mysql
rpm -qa | grep mariadb
如果有的话使用卸载命令:rpm -e --nodeps mariadb-libs

2.3、/tmp目录权限,当前用户是否拥有此目录的全部去权限
否则使用:sudo chmod -R 777 /tmp
注:root用户拥有全部权限:drwxrwxrwt. 10 root root 281 9月 11 19:49 tmp

3.RPM安装

5.5.54仅用安装 client,server两个RPM文件,其余可省略。
5.7.27要求安装4个,顺序为:—> common libs client server

# 安装perl
[root@localhost opt]# yum install -y perl

# 1.1 此命令会自动安装当前opt目录下的,全部rpm包,并且会自动分析欠缺的依赖项,通过网络下载安装。
[root@localhost opt]# yum -y localinstall *.rpm

# 1.2 手动按序逐个安装
[root@localhost opt]# rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm 
[root@localhost opt]# rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm
[root@localhost opt]# rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm
[root@localhost opt]# rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm

启动前,版本验证

[root@localhost log]# mysqladmin --version
mysqladmin  Ver 8.42 Distrib 5.7.27, for Linux on x86_64

尝试启动服务自启验证

[root@localhost opt]# systemctl start mysqld
或老版本命令
[root@localhost opt]# service mysqld start


[root@localhost opt]# systemctl list-unit-files | grep mysqld
mysqld.service                                enabled 
mysqld@.service                               disabled

启动后,进程验证安装位置查看 /usr/sbin/mysqld

[root@localhost opt]# ps -ef | grep mysqld
mysql     16077      1  0 20:16 ?        00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root      16137   7357  0 20:32 pts/0    00:00:00 grep --color=auto mysql

可能遇到的错误

1.perl
错误:依赖检测失败
        /usr/bin/perl 
        被 mysql-community-server-5.7.27-1.el7.x86_64 需要
        net-tools 
        被 mysql-community-server-5.7.27-1.el7.x86_64 需要
        perl(Getopt::Long) 
    	被 mysql-community-server-5.7.27-1.el7.x86_64 需要
        perl(strict) 
    	被 mysql-community-server-5.7.27-1.el7.x86_64 需要
解决:yum install -y perl

4.初次登陆数据库

可能根据版本不同,mysql-5.5.54 是可以直接 空密码登陆的而在mysql-5.7.27 使用临时密码登陆

# mysql-5.5.54
# 初次可空密码登陆,再可使用命令 /usr/bin/mysqladmin -u root password 'newPW' 初始化密码
[root@localhost opt]# mysql
mysql>exit
[root@localhost opt]# /usr/bin/mysqladmin -u root password 'root'

# mysql-5.7.27及之后
# 查找日志文件,获取自动生成的 root用户的临时密码
[root@localhost opt]# cat /etc/my.cnf
log-error=/var/log/mysqld.log
[root@localhost opt]# grep "password" /var/log/mysqld.log
2019-09-11T12:06:37.251756Z 1 [Note] A temporary password is generated for root@localhost: uPX!am/e5kyv
[root@localhost opt]# mysql -u root -p uPX!am/e5kyv
# 修改root临时密码
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> set password for root@localhost = password('root');
或
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

5.修改远程登陆权限

第一步:关闭Linux防火墙

# CentOS 7 
# 查询防火墙状态
[root@localhost ~]# firewall-cmd --state
# 关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
# 关闭防火墙开机自启
[root@localhost ~]# systemctl disable firewalld.service

或者

# 不关闭防火墙,public开放特定端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost ~]# firewall-cmd --reload

防火墙相关命令:https://www.jianshu.com/p/411274f96492

第二步:为MySQL的root用户远程登陆MySQL设置权限

mysql> grant all privileges on *.* to 'root'@'%' identified by 'Root123456' with grant option;
mysql> flush privileges;

第三步:如果使用的是Navicat且连接出错,在my.conf配置文件添加

[mysqld]
skip-name-resolve

6.修改字符集

查看数据库字符集

mysql> show variables like 'character_set_%';

修改 my.cnf 配置文件

# mysql-5.5.54
令完整版配置文件 `my-huge.cnf` 覆盖已存在的 `/etc/my.cnf`配置文件,此文件在安装目录`/usr/share/mysql/`[root@localhost opt]# cp /usr/sbin/mysqld/my-hug.cnf /etc/my.cnf
[root@localhost opt]# vi /etc/my.cnf
[client]
default-character-set=utf8mb4
[mysqld]
character_set_server=utf8mb4
character_set_client=utf8mb4
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8mb4

# mysql-5.7.27及之后
[root@localhost opt]# vi /etc/my.cnf
[mysql]
default-character-set=utf8mb4
[mysqld]
character_set_server=utf8mb4

注1:原库的设定不会发生变化,配置文件中的参数修改只对新建的数据库生效

已生成的库表字符集设定变更

# 更改数据库字符集
mysql> alter database mydb character set 'utf8';
# 更改数据表字符集
mysql> alter table mytbl convert to  character set 'utf8';

注2:如果原有的数据是用非’utf8’编码的话,数据本身不会发生改变。

7.忘记密码并重置

#第1种方式
1.以安全模式启动MySQL服务
[root@localhost ~]# systemctl status mysqld
[root@localhost ~]# systemctl stop mysqld
[root@localhost ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# 5.7版本
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('root') where USER='root';
mysql> flush privileges;
# 5.7以前的版本
mysql> UPDATE mysql.user SET Password=PASSWORD('123456') where USER='root';
mysql> flush privileges;

#第2种方式
2.修改 my.cnf 配置文件
[mysqld]
skip-grant-tables
#重启服务
systemctl restart mysqld
mysql -u root -p
#直接回车进入mysql
# 5.7版本
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('root') where USER='root';
mysql> flush privileges;
# 5.7以前的版本
mysql> UPDATE mysql.user SET Password=PASSWORD('123456') where USER='root';
mysql> flush privileges;

8.查看默认配置文件路径

$ mysql --help|grep 'my.cnf'
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf

5.7+ MySQL 在线 YUM 安装

详看: 【MySQL基础 安装】CentOS 7 Yum网络部署 最新官方MySQL5 2020_2_1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值