MySQL安装

MySQL安装

作者:vwFisher

时间:2019-06-05

官网:https://dev.mysql.com/downloads/mysql/

下载地址:https://downloads.mysql.com/archives/community/

建议用 RPM 安装,tar.gz 安装失败,没有收录在本文章中

目录



安装

Windows

1).在官网下载msi后缀名直接安装
2).解压缩版的安装

解压缩版本安装

[在Windows下有个解压缩版的文件夹]
    1).将mysql压缩包解压到一个目录
    2).将my.ini 和 安装服务.bat 放置同目录
    3).修改my.ini的路径
    4).进入bin,执行以下命令
mysql -u root -p 无密码
    5).修改密码
set password = password('11111111');    
    6).测试
mysql -u root -p 
    输入刚刚设置的密码看是否成功




MAC OS X

详细步骤参考:http://www.jb51.net/article/103841.htm

1.下载安装

在官网,找到Mac OS X的dmg下载包。下载之后,执行dmg安装

2.配置

系统偏好设置 -> mysql -> Start MySQL Server启动Server

3.打开终端,或iTerm2

运行下面两条命令(本质是写入到bash_profile中):

alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin

这两条命令是为了方便直接打开 iTerm 就可以运行mysql命令,而不是必须进入mysql安装目录才能运行。接下来,你要做的是重置密码。重置密码命令:

mysqladmin -u root -p password newpass(你的新密码)

运行重置密码的命令后,系统提示输入旧密码。安装过mysql5.6或之前版本的同学知道,mysql首次运行会给root用户分配一个默认密码:root, 这个旧密码就是root。但是现在如果你输入root,系统提示密码错误,怎么回事呢?

原来5.7的版本不会再给root用户分配默认密码,而是会给一个临时密码,如果你细心的话,安装mysql成功后会弹出一个临时密码让你保存。如果你没有保存,没关系,右侧的通知栏里会有,如图:

mysql_install_mac_init_pwd

我的临时密码就是_;kb8t7=-ZoU

输入临时密码,密码修改成功,然后用新密码登录:

mysql -u root -p

回车,新密码,回车,登录成功!




CentOS

推荐用 RPM 安装

https://downloads.mysql.com/archives/community/

选择Red Hat Enterprise Linux -> RPM Bundle 包下载

RPM 安装 - CentOs 6 - 版本 5.6

1.下载mysql安装包

https://downloads.mysql.com/archives/community/

选择Linux Generic -> Linux - Generic (glibc 2.12) (x86, 64-bit), TAR

2.安装mysql

1).解压
    tar -xvf MySQL-5.6.16-1.linux_glibc2.5.x86_64.rpm-bundle.tar

2).删除
    检查是否安装其他版本的mysql
    rpm -qa | grep mysql
    如果安装则卸载旧版本
    rpm -e --nodeps mysql-libs-xxxxxxxx
   清理mysql文件夹
    /var/lib/mysql
    rm -rf /var/lib/mysql
   
3).使用如下命令安装Server和Client
    rpm -ivh MySQL-server-5.6.xxxxxx.rpm
    rpm -ivh MySQL-client-5.6.xxxxxx.rpm

4).启动
    service mysql start
    使用如下命令查看当前mysql的状态:
    service mysql status
   可以启动命令加入到linux的启动项中,开机即启动mysql服务:
    chkconfig --add mysql
    chkconfig mysql on
    使用命令chkconfig --list查看下是否设置成功,此操作都是root权限

5).设置密码
    设置mysql的root密码,使用如下命令:
    mysql -u root -p
    提示输入密码,初始root密码保存在'/root/.mysql_secret'文件中
    登录mysql后接着输入set password = password('11111111');

6).文件说明
    下面是mysql安装后三个主要的目录及其功能、修改配置等等:
    /var/lib/mysql   数据库文件
    /usr/share/mysql 命令及配置文件
    /usr/bin mysqladmin、mysqldump等命令    

7).字符集设置
    将my.cnf文件放到/etc执行重启:
    查看数据库字符集
    SHOW VARIABLES LIKE '%char%';




RPM 安装 - CentOs 7 - 版本 5.7

参考:http://blog.csdn.net/chris_111x/article/details/51966451

1.下载 / 解压 / 检查 / 安装前置依赖

下载,将RPM放进自己想要放的文件夹,解压

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar 
mkdir mysql_install
mv MySQL-5.6.35-1.linux_glibc2.5.x86_64.rpm-bundle.tar ./mysql_install/
cd mysql_install
tar –xvf MySQL-5.6.35-1.linux_glibc2.5.x86_64.rpm-bundle.tar

检查系统是否安装了MySQL

rpm –qa mysql

显示

mysql-libs-5.1.73-3.el6_5.x86_64

卸载已安装的MySQL

rpm -e --nodeps mysql-libs-5.1.73-3.el6_5.x86_64

要将/var/lib/mysql文件夹下的所有文件都删除干净,卸载mariadb-libs软件包

rpm -qa | trep mariadb

如果有显示对应的软件,则卸载

yum remove mariadb-libs-...

安装前置依赖

yum -y install perl libnuma* libaio net-tools

2.安装新的MySQL

按下面的顺序安装,前后依赖

rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm 
rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm

在安装rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm的时候报错如下:

  warning: mysql-community-server-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
  error: Failed dependencies:
  libaio.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
  libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
  libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
  net-tools is needed by mysql-community-server-5.7.16-1.el7.x86_64

这个报错的意思是需要安装libaio包和net-tools包:可以yum安装一下。可能报错,包冲突

...
from install of mysql-community-common-5.7.20-1.el7.x86_64 conflicts with file from package mariadb-libs-1:5.5.56-2.el7.x86_64
那么删除mariadb-libs包
yum remove mariadb-libs

3.启动服务

命令启动服务:systemctl start mysqld

查看服务状态:systemctl status mysqld

4. 重置Mysql密码

查看mysql初始化root的临时密码

安装数据库成功后,mysql中会有一个初始化的临时登录密码,使用如下命令查看初始化密码

grep 'temporary password' /var/log/mysqld.log

输入mysql -u root -p命令后,显示输入密码提示,然后输入密码(上面的密码),最后按Enter键。显示登录mysql成功。

修改密码方式1:

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
# 会提示你去重新设置密码才能执行这个语句
# 重新设置密码 修改密码规则等级,该等级是最低等级。
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD = PASSWORD('88888888');
Query OK, 0 rows affected, 1 warning (0.01 sec)
# 刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

修改密码方式2:

输入quit命令退出数据库后,输入cd /bin命令进行到bin目录下。

输入mysqladmin -u root -p password命令后,显示密码提示,输入数据库的初始化的临时密码后,显示输入新密码和确认密码。

难题解决

    强制重置mysql密码,编辑my.cnf文件
vi /etc/my.cnf 
    在my.cnf找到[mysqld],在下面添加一行skip-grant-tables
 
Systemctl restart mysqld  #重启MySQL服务
    进入MySQL控制台
mysql -uroot -p   #直接按回车,这时不需要输入root密码。
    修改root密码
update mysql.user setauthentication_string=password('123456') where User="root" andHost="localhost";
flush privileges;  #刷新系统授权表
grant all on *.* to 'root'@'localhost' identified by '123456' with grant option;
    取消/etc/my.cnf中的skip-grant-tables
vi /etc/my.cnf   编辑文件,找到[mysqld],删除skip-grant-tables这一行
:wq!  #保存退出
    重启mysql
systemctl restart mysqld   #重启mysql,这个时候mysql的root密码已经修改为123456
    进入mysql控制台
mysql -uroot -p  #进入mysql控制台
123456 #输入密码
【注:在mysql5.7以后的版本,修改密码的字段不是password而是authentication_string】

查看密码规则等级
    登录数据库后,输入select @@validate_password_length;可查看当前的数据库密码规则等级长度,当前的长度为8位字符。
 
Validate_password_policy有以下取值:
Policy  Tests Performed
0 or LOW    Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
    设置密码验证规格等级。
    
SET global validate_password_policy=0;




RPM 安装 - CentOs 7 - 版本 8.0.15

1.写在前头,可能遇到的问题

一、发生问题1: 在安装 libs 和 libs-compat 时,安装报错

报错内容如下:

# rpm -ivh mysql-community-libs-compat-8.0.15-1.el7.x86_64.rpm
warning: mysql-community-libs-compat-8.0.15-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
    mariadb-libs is obsoleted by mysql-community-libs-compat-8.0.15-1.el7.x86_64

原因:我们在Linux系统中,如果要使用关系型数据库的话,基本都是用的mysql。在7版本以下的centos系统都是默认的集成有mysql。

然而对于现在最新的centos7系统来说,已经不支持mysql数据库,它默认内部集成了mariaDB。

如果我们想要使用 mysql 的话,就要先将原来的mariaDB卸载掉,不然会引起冲突。解决方案

rpm -qa | grep mariadb     # 查看安装的 mariaDB
rpm -e [--nodeps] softwareName        # 如果不能卸载则用 --nodeps 参数

如:

# rpm -qa | grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
# rpm -qa | grep mariadb

之后再执行安装,可能出现 下列的问题2,缺少依赖

二、发生问题2:缺少依赖包问题:libaio、libnuma、net-tools。可以一次性安装:

yum -y install numactl libaio perl net-tools
  1. 缺少依赖包 libaio,显示错误信息.

    libaio.so.1()(64bit) is needed by MySQL-server 问题
    
  2. 缺少依赖包 libnuma,显示错误信息.

    error: Failed dependencies:
        libnuma.so.1()(64bit) is needed by mysql-community-embedded-    compat-8.0.15-1.el7.x86_64
        libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-embedded- compat-8.0.15-1.el7.x86_64
        libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-embedded- compat-8.0.15-1.el7.x86_64
    
  3. 缺少依赖包 net-tools,显示错误信息.

    error: Failed dependencies:
        net-tools is needed by mysql-community-server-8.0.15-1.el7.x86_64
    

2.安装

我习惯先放在一个目录下,进行解压来处理

mkdir mysql_install
cp mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar ./mysql_install/
cd mysql_install/
tar -xvf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar

rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm  # 可能发生问题1
rpm -ivh mysql-community-libs-compat-8.0.15-1.el7.x86_64.rpm  # 可能发生问题2,缺少依赖
rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm  # 可能发生问题2,缺少 net-tools

3.启动服务

  1. 命令启动服务:systemctl start mysqld
  2. 查看服务状态:systemctl status mysqld

4.重置Mysql密码

查看mysql初始化root的临时密码
安装数据库成功后,mysql中会有一个初始化的临时登录密码,使用如下命令查看初始化密码

# grep 'temporary password' /var/log/mysqld.log
2019-07-09T09:48:20.313242Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Js1MhlGR/R:H

输入mysql -u root -p命令后,显示输入密码提示,然后输入密码(上面的密码),最后按Enter键。显示登录mysql成功。

修改密码方式1:

# 修改安全等级
set global validate_password.policy=0;
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '88888888';
# 刷新权限
flush privileges;

修改密码方式2,会提示输入旧密码

输入quit命令退出数据库后,输入cd /bin命令进行到bin目录下。

输入mysqladmin -u root -p password命令后,显示密码提示,输入数据库的初始化的临时密码后,显示输入新密码和确认密码。

mysqladmin -u root -p password 新密码

其他

1.相关命令

  1. 启动:systemctl start mysqld / service mysqld start
  2. 查看状态:systemctrl status mysqld / service mysqld status
  3. 停止:systemctrl stop mysqld / service mysqld stop

2.忘记密码

  1. 先停止 MySQL 服务,如果不能正常停止,则通过 netstat -antp|grep mysql 查看 pid,通过kill方式来停止 mysql 进程

  2. 跳过授权。使用安全模式进入MySQL,并且跳过授权

     mysqld_safe --skip-grant-tables &
    
  3. 登录,输入 mysql -uroot -p 不要敲密码,回车进入即可

  4. 更新密码

     mysql> use mysql
     # 下面2句,如果哪一句不行,就用另外一句
     mysql> update user set password=PASSWORD("123456")where user="root";
     mysql> SET PASSWORD = PASSWORD('root6666');
     mysql> flush privileges;
     mysql> quit
    

    使用一下mysql这个库就好,然后执行一下update语句(括号里面的是你要修改的新密码),然后刷新一下授权表,最后退出即可。

  5. 重启Mysql,再用 mysql -u root -p 验证新密码

3.远程登录

修改远程Mysql的权限,登录数据库后,输入

USE `mysql`;

进入mysql数据库后,再输入

SELECT `host`,`user` FROM `user`;
UPDATE `user` SET `host`='%' WHERE `user`='root';
FLUSH PRIVILEGES;
mysql_remote_connection_config

然后可以使用Navicat使用直连方式连接到这个MySQL

而如果是另外一台客户端连接,则必须要安装

rpm -ivh mysql-community-client-5.7.12-1.el7.x86_64.rpm

然后,在命令行下输入:mysql -h 192.168.0.132 -P 3306 -u root -proot,显示登录成功。

在命令行中输入create database testdb; 后按回车创建数据库成功。

为了确认远程的服务器是否有testdb数据库,可回到远程的数据库查看新建的testdb数据库。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,607评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,239评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,960评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,750评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,764评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,604评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,347评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,253评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,702评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,893评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,015评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,734评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,352评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,934评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,052评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,216评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,969评论 2 355