您现在的位置是:网站首页>>数据库>>mysql

mysql安装

发布时间:2018-08-15 14:28:36作者:wangjian浏览量:803点赞量:1

    安装前,我们可以检测系统是否自带安装 MySQL:

    rpm -qa | grep mysql

    如果你系统有安装,那可以选择进行卸载:

    rpm -e mysql  // 普通删除模式
    rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

    一、安装编译工具及库文件

    yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel

    二、 安装cmake 编译器

    1:下载cmake

    wget https://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz

    也可以浏览https://cmake.org/files/ 选择指定的版本下载

    2:安装cmake

    tar zxvf cmake-3.1.1.tar.gz
    cd cmake-3.1.1
    ./bootstrap
    make && make install

    三:安装mysql

    1使用 yum 命令安装 MySQL

    (1):安装mysql

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

    image.png

    wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm  #这里下载的mysql是5.7版本的 
    rpm -ivh mysql57-community-release-el7-9.noarch.rpm
    yum install mysql-server

    安装成功之后需要进行初始化:

    初始化 MySQL:

    mysqld --initialize

    (2):mysql启动

    启动 MySQL:

    systemctl start mysqld

    查看 MySQL 运行状态:

    systemctl status mysqld

    执行systemctl start mysqld可能会报以下错误:

    Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

    解决方法:

    查看/var/lib/mysql

    image.png

    执行:

    chown -R mysql.mysql .

    将mysql文件夹下所有文件变为mysql用户即可

    (3)验证 MySQL 安装

    mysqladmin --version

    输出结果为:

    mysql  Ver 8.0.12 for Linux on x86_64 (MySQL Community Server - GPL)

    (4)设置开机启动

    #开机启动
    systemctl enable mysqld
    刷新配置
    systemctl daemon-reload

    获取root初始密码

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

    2下载压缩包进行安装

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

     

     

    (1)将mysql下载下来并进行解压

    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
    tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

    你也可以直接从浏览器下载下来安装

    (2)创建mysql用户和用户组

    groupadd mysql
    useradd -r -g mysql mysql

    (3)将解压出来的文件截切到/usr/local目录下,并创建数据库存储(data)目录,并赋予权限

    mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/mysql
    mkdir /usr/local/mysql/data
    chown -R mysql:mysql /usr/local/mysql/data

    (4)配置数据库配置文件(my.cnf)

    vim /etc/my.cnf

    my.cnf文件内容为:

    [mysqld]
    bind-address=0.0.0.0            #设置mysql远程可连接
    port=3306                       #设置mysql端口号
    basedir=/usr/local/mysql        #设置数据库地址
    datadir=/usr/local/mysql/data   #设置数据库数据存储地址
    socket=/tmp/mysql.sock          #设置socket方式运行的sock文件位置
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0                #是否支持符合链接 0为不开启
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd
    [mysqld_safe]
    log-error=/usr/local/mysql/data/mysql.err         #错误日志位置
    pid-file=/usr/local/mysql/data/mysql.pid          #进程ID文件位置
    #
    # include all files from the config directory
    #
    !includedir /etc/my.cnf.d

     image.png

    (5)数据库初始化

    /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

    初始化同时会生成初始的root用户密码

    image.png

    (6)设置mysql开机自启

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    chmod +x /etc/init.d/mysql
    chkconfig --add /etc/init.d/mysql

    启动mysql胡哦停止mysql

    service mysql start  #启动mysql(systemctl start mysql)
    service mysql stop  #停止mysql(systemctl stop mysql)

    (7)连接数据库

    执行mysql会提示提示未找到命令,解决方法为:

    ln -s /usr/local/mysql/bin/mysql /usr/bin

    到此mysql安装成功


    三:数据库配置

    使用密码链接mysql,密码获取上面已经叙述了

    mysql -u root -p

    使用以下命令来创建root用户的密码:

    进入mysql命令行,修改密码为root

      mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
    Query OK, 0 rows affected (0.00 sec)

    远程无法连接mysql

    (1):你登录的用户不允许远程连接

    #使用你设置的密码链接mysql
    mysql -u root -p
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; #设置远端登录
    Query OK, 0 rows affected, 1 warning (0.01 sec)
    mysql>FLUSH PRIVILEGES;
    mysql>exit;
    Bye

    (2)防火墙阻止3306端口被远程访问

    解决方法一:

    开放3306端口

    #启动Firewall
    systemctl start firewalld

    #设置开机自启动
    systemctl enable firewalld.service  

    # 防火墙开放3306端口
    firewall-cmd --zone=public --add-port=3306/tcp --permanent

    # 防火墙开放80端口
    firewall-cmd --zone=public --add-port=80/tcp --permanent

    # 刷新防火墙配置
    firewall-cmd --reload

    # 查看端口禁用和开启情况
    iptables -L -n

    关闭防火墙

    systemctl stop firewalld.service  #关闭防火墙
    systemctl disable firewalld.service #开机时关闭防火墙

1 +1