1. 环境配置

系统环境: CentOS7

数据库版本: MySQL5.7

2. 准备工作

  • 先检查要安装的Linux服务器cglib版本号, 查看其是否有相应cglib版本

    strings /lib64/libc.so.6 | grep GLIBC
  • 检查本地是否安装了MySQL

    rpm -qa | grep mysql
  • 如果存在的话,卸载

    rpm -e 已存在的mysql全名
  • 下载MySQL5.7

    选在下载对应版本的MySQL http://mirrors.sohu.com/mysql/MySQL-5.7/

    mkdir /usr/local/mysql
    cd
    wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.3.27-linux-glibc2.12-x86_64.tar.gz

    如果没有 wget命令,先执行安装wget

    yum -y install wget

3. 创建用户

出于安全便利,创建一个专门用于操作数据库的用户

  • 建立一个mysql的组

    groupadd mysql
  • 建立一个mysql用户,并把用户放到mysql组中

    useradd -r -g mysql mysql
  • 设置密码

    passwd mysql  // 123456a?
  • 目录更改拥有者

    chown -R mysql:mysql /usr/local/mysql

4. MySQL安装

  • 解压压缩包

    tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
  • 重命名

    mv mysql-5.7.23-linux-glibc2.12-x86_64/ mysql-5.7.23
  • 配置my.cnf

    [client]
    port = 3306
    #没有就创建
    socket = /tmp/mysql.sock

    [mysqld]
    ###############################基础设置#####################################
    #Mysql服务的唯一编号 每个mysql服务Id需唯一
    server-id = 1
    #服务端口号 默认3306
    port = 3306
    #mysql安装根目录
    basedir = /usr/local/mysql/mysql-5.7.23
    #mysql数据文件所在位置 没有改目录则创建
    datadir = /usr/local/mysql/data
    #临时目录 比如load data infile会用到
    tmpdir = /tmp
    #设置socke文件所在目录
    socket = /tmp/mysql.sock
    #数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
    character-set-server = utf8mb4
    #数据库字符集对应一些排序等规则,注意要和character-set-server对应
    collation-server = utf8mb4_general_ci
    #设置client连接mysql时的字符集,防止乱码
    init_connect='SET NAMES utf8mb4'
    default-storage-engine=INNODB
    ###############################日志设置#####################################
    #数据库错误日志文件
    log_error = /usr/local/mysql/log/error.log
    pid-file=/var/log/mysqld.pid

    修改 /etc/my.cnf中的内容

    https://www.cnblogs.com/shamo89/p/10164427.html

    注:pid-file的目录就放在/var/log 下,我尝试放到别的目录下失败了。创建完mysql.pid后,需要给mysql用户赋予权限。

    touch /var/log/mysqld.log
    chown -R mysql:mysql /var/log
    cd log
    chmod 755 mysqld.log


  • 复制 mysql.server 到 /etc/init.d/ 目录下(目的是实现开机自动执行效果)

    cd /usr/local/mysql/mysql-5.7.23/support-files/
    cp mysql.server /etc/init.d/mysql

    修改 /etc/init.d/mysql 中的basedir 和 datadir

  • 初始化数据库

    cd /usr/local/mysql/mysql-5.7.23/bin/

    ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.23 --datadir=/usr/local/mysql/data --console
  • 数据库加密

    ./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
  • 启动MySQL

    ./mysqld_safe --user=mysql &
  • 检查MySQL是否启动

    ps -ef|grep mysql

5. 进入客户端

  • 登录客户端

    grep "temporary password" /usr/local/mysql/log/error.log # 查找临时密码
    ./mysql -uroot -p # 第一次进入,需要输入密码,为临时密码,可以在error.log中查找

因为我这里启动了多次,所以有多个临时密码,选用最后的 Vu0t6.qD+F8= 进入mysql

  • 修改密码

    set password=password('新密码');
    exit
    ./mysql -uroot -p // 然后输入新密码即可
  • 设置远程访问

    // 设置远程访问账号:grant all   privileges on . to 远程访问用户名@’%’ identified by ‘用户密码’;
    mysql> grant all privileges on *.* to root@'%' identified by 'root';
  • mysql> flush privileges; // 刷新权限
满心欢喜,打开navicat链接MySQL,结果悲剧了……
 代开cmd,ping ip地址,没问题,telnet ip 3306 不通,好嘛,原来没有关掉防火墙。systemctl start firewalld # 开启防火墙 systemctl stop firewalld  # 关闭防火墙 systemctl status firewalld  #检查防火墙状态

关闭防火墙,链接,成功了。

到此,MySQL数据库安装,启动成功。

  【小记】
上面是通过关闭防火墙,其实生成环境中关闭防火墙是不允许的,可以通过防火墙添加端口实现

// 添加3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
// 重启防火墙
firewall-cmd --reload
// 查询防火墙开放端口
firewall-cmd --list-ports

6. 设置开机启动

  • 添加MySQL服务

    chkconfig --add mysql
  • 设置自启动

    chkconfig mysql on

7. 配置环境变量

vim /etc/profile

在最后一行添加

export PATH=$JAVA_HOME/bin:/usr/local/mysql/mysql-5.7.23/bin:$PATH

使修改生效

source /etc/profile

礼成 ! 赶快收藏、点赞吧!

举报/反馈

小白在学习ING

5获赞 19粉丝
工作生活分享录,记录一切美好
关注
0
0
收藏
分享