zoukankan      html  css  js  c++  java
  • MySql(零):Linux(CentOS7)下安装和配置MySQL5.7.20(安装包安装)

    一、下载安装包

    1.在官网下载MySQL5.7安装包

    mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz。

    下载地址:https://dev.mysql.com/downloads/mysql/

    由于安装包比较大,五六百M吧,再加上官网下载速度很慢,如果你等不急,可以使用下面第二种方法下载。

    2.百度网盘资源

    链接:https://pan.baidu.com/s/1w98R36MzVwJCiZyeLEFe9A
    提取码:8wro

    如果该链接失效,可以留言或站内信提醒我更新链接

    二、创建mysql用户组和mysql用户

    添加 mysql 组和 mysql 用户:

          添加 mysql 组:[root@localhost ~]# groupadd mysql

          添加 mysql 用户:[root@localhost ~]# useradd -r -g mysql mysql

          扩展:

            查看是否存在 mysql 组:[root@localhost ~]# more /etc/roup | grep mysql

            查看 msyql 属于哪个组:[root@localhost ~]# groups mysql

            查看当前活跃的用户列表:[root@localhost ~]# w

    三、将MySQL安装包上传并解压

    我一般都是上传到/usr/local/目录,然后解压

    # tar -xzvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

    四、安装MySQL前的一些准备

    由于解压后的mysql文件夹太长,需要重命名下为mysql

    [root@localhost local]# mv ./mysql-5.7.21-linux-glibc2.12-x86_64 ./mysql

    修改权限

    [root@localhost local]# chown -R mysql . // 把文件改为mysql用户可操作
    [root@localhost local]# chgrp -R mysql . // 属组改为mysql组

    检查是否安装了 libaio

    [root@localhost pub]# rpm -qa | grep libaio

    若没有则安装

      版本检查:

    [root@localhost pub]# yum search libaio

      安装:

    [root@localhost pub]# yum -y install libaio

    五、安装MySQL

    进入安装 mysql 软件目录:

    [root@localhost ~]# cd /usr/local/mysql/

    安装配置文件:

    [root@localhost mysql]# cp ./support-files/my-default.cnf /etc/my.cnf(提示是否覆盖,输入“ y ”同意)

    修改被覆盖后的 my.cnf:

    [root@localhost mysql]# vim /etc/my.cnf
    [mysql] 
    # 设置mysql客户端默认字符集 
    default-character-set=utf8  
    [mysqld] 
    #skip-name-resolve 
    #设置3306端口 
    port = 3306  
    socket=/var/lib/mysql/mysql.sock 
    # 设置mysql的安装目录 
    basedir=/usr/local/mysql 
    # 设置mysql数据库的数据的存放目录 
    datadir=/usr/local/mysql/data 
    # 允许最大连接数 
    max_connections=200 
    # 服务端使用的字符集默认为8比特编码的latin1字符集 
    character-set-server=utf8 
    # 创建新表时将使用的默认存储引擎 
    default-storage-engine=INNODB 
    #lower_case_table_name=1 
    max_allowed_packet=16M

    这边有的版本需要解决这个问题:MySQL的my.cnf文件(解决5.7.18下没有my-default.cnf)

    在mysql目录下创建data目录,作为数据存储位置

    [root@localhost local]# cd ./mysql/
    [root@localhost mysql]# ls
    bin  COPYING  docs  include  lib  man  README  share  support-files
    [root@localhost mysql]# mkdir ./data/

    修改当前目录拥有者为 mysql 用户

    [root@localhost mysql]# chown -R mysql:mysql ./

    初始化mysqld,为了清晰,我这边都是用的绝对路径,出现下面这些信息,就代表mysql配置成功了

    [root@localhost bin]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
    2018-12-23T03:26:53.084331Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2018-12-23T03:26:53.361136Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2018-12-23T03:26:53.447653Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2018-12-23T03:26:53.549908Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 97d6a462-0662-11e9-8f84-000c2928b075.
    2018-12-23T03:26:53.551132Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2018-12-23T03:26:53.552764Z 1 [Note] A temporary password is generated for root@localhost: ClTbfl(<=4Qd

    最重要的是最后一行,框框里的这个就是mysql里root的初始密码了

    六、配置MySQL

    1 设置开机启动 

    a. 复制启动脚本到资源目录

    [root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

    b. 增加 mysqld 服务控制脚本执行权限

    [root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld

    c. 将 mysqld 服务加入到系统服务

    [root@localhost mysql]# chkconfig --add mysqld

    d. 检查mysqld服务是否已经生效

    [root@localhost mysql]# chkconfig --list mysqld

    命令输出类似下面的结果

    mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off       

    表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用 service 命令控制 mysql 的启动和停止。

    查看启动项

    chkconfig --list | grep -i mysql

    删除启动项

    chkconfig --del mysql

    e. 启动 mysqld

    [root@localhost mysql]# service mysqld start

    .2 环境变量配置

        将mysql的bin目录加入PATH环境变量,编辑 /etc/profile文件:

    [root@localhost mysql]# vim /etc/profile
    PATH = $PATH:/usr/local/mysql/bin
    export PATH

        执行命令使其生效:

    [root@localhost mysql]# source /etc/profile

        用 export 命令查看PATH值:

    [root@localhost mysql]# echo $PATH

    七、登录 mysql

    1 测试登录

    登录 mysql

    [root@localhost mysql]# mysql -uroot -p(登录密码为初始化的时候显示的临时密码)

    初次登录需要设置密码才能进行后续的数据库操作

    SET PASSWORD = PASSWORD('123456');(密码设置为了123456)

    修改密码为 password

    update user set authentication_string=PASSWORD('password') where User='root';

    2 防火墙端口设置,便于远程访问

    [root@localhost ~]$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
    
    [root@localhost ~]$ firewall-cmd --reload

      开启防火墙mysql3306端口的外部访问

      CentOS升级到7之后,使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口

      --zone : 作用域,网络区域定义了网络连接的可信等级。

        这是一个一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接

      --add-port : 添加端口与通信协议,格式为:端口/通讯协议,协议是tcp 或 udp

      --permanent : 永久生效,没有此参数系统重启后端口访问失效

    3 使用 SQLyog 远程连接出现不允许连接问题:

        首先使用 dos 窗口 ping 一下 linux,排除网络连通问题,其次使用 SQLyog 连接测试一下。

        解决方法:登录 linux mysql 在用户管理表新增用户帐号

          mysql> use msyql 

          mysql> create user 'user-name'@'ip-address' identified by 'password';(红色标记为需要修改的地方)

        其他方案:

          授权root用户可以进行远程连接,注意替换以下代码中的“password”为 root 用户真正的密码,

          另外请注意如果你的root用户设置的是弱口令,那么非常不建议你这么干!:   

    mysql> grant all privileges on *.* to root@"%" identified by "password" with grant option;
    mysql> flush privileges;
  • 相关阅读:
    插入排序
    dojo树的节点添加链接的例子
    Discuz 3x 配置问题
    mysql_connect() 不支持 请检查 mysql 模块是否正确加载
    IIS访问php页面问题,报告404错误
    Map使用操作系统内存的情况
    IT级别
    java类型和mysql类型的转换
    C++析构函数的自动调用问题
    c++中虚函数
  • 原文地址:https://www.cnblogs.com/shamo89/p/10162605.html
Copyright © 2011-2022 走看看