美文网首页
MySQL安装

MySQL安装

作者: vwFisher | 来源:发表于2019-10-23 22:03 被阅读0次

    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数据库。

    相关文章

      网友评论

          本文标题:MySQL安装

          本文链接:https://www.haomeiwen.com/subject/oqslvctx.html