• Linux中安装MySQL5.7.42


    1. 首先,下载mysql5.7.42的安装包(下方是下载地址),选择红色框框的下载(注意的是,这个链接只提供5.7的版本下载,可能还会更新,不一定打开就是5.7.42的版本,后续可能会有43 ,44版本,但流程都是一样的) 

    2. 将压缩包上传到虚拟机上,可以使用Xshell7 配合 Xftp7 进行上传(这里不做演示)

    3. 将压缩包解压

    tar -xvf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz

     4. 将解压后的文件目录移动到自定义的目录上(我的存放位置是/usr/local/mysql)

    mv mysql-5.7.42-linux-glibc2.12-x86_64 /usr/local/mysql

    5. 切换路径到local目录下

    cd /usr/local/

    6. 创建mysql用户组和用户并修改权限(两条命令依次执行)

    groupadd mysql  
    useradd -r -g mysql mysql

    7. 创建数据目录,并赋权限

    mkdir -p  /data/mysql  #创建目录  
    chown mysql:mysql -R /data/mysql   #赋予权限

    8. 配置my.cnf

    vim /etc/my.cnf

    # 内容如下(将下方的内容复制进去,需要的自己按需修改):

    [client]
    default-character-set = utf8mb4

    [mysql]
    default-character-set = utf8mb4

    [mysqld]  
    bind-address=0.0.0.0   #所有ip均可访问 
    port=3306   #端口号 
    user=mysql 
    basedir=/usr/local/mysql  #mysql路径 
    datadir=/data/mysql   #赋予权限路径 
    socket=/tmp/mysql.sock 
    log-error=/data/mysql/mysql.err  
    pid-file=/data/mysql/mysql.pid
    #character config  
    character-set-client-handshake=FALSE
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4'
    # sql_mode=only_full_group_by问题解决办法
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    symbolic-links=0  
    explicit_defaults_for_timestamp=true

    切记!如果不是按照我的配置来弄的话,自己选择别的目录,这两个位置一定要改!

    9. 初始化数据库,进入bin目录

    cd /usr/local/mysql/bin/

    10. 初始化

    ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

    11. 查看密码

    cat /data/mysql/mysql.err

     执行命令后会出现上方图片的结果,把冒号后的内容复制下来,后面有用

    12. 将mysql.server放置到/etc/init.d/mysql中

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

    13. 启动服务,并查看服务是否正常启动

    service mysql start
    ps -ef|grep mysql

    # 到此,mysql安装成功

    14. 进入mysql(需要在/bin目录下执行命令,执行后需要输入密码,将之前复制的密码粘贴上去)

    ./mysql -u root -p

    出现该页面,证明成功登录进去mysql

    15. 开始修改密码(依次执行下方三个命令,注意,下方执行的是mysql的语法,不能把;号忽略,这是要留意的点,建议直接复制,不要手打)

    SET PASSWORD = PASSWORD('123456');

     ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

    FLUSH PRIVILEGES;

    出现上图的信息,证明更改成功

    16. 重新测试登录

    # 步骤15执行完成后,输入exit,回车退出mysql

    #重新输入(/bin目录下)

    ./mysql -u root -p

     

    # 使用自己设置的密码即可成功进入

     17. 外部图形化软件连接虚拟机数据库

    # 先登录数据库

    ./mysql -u root -p

     

    # 访问mysql库

    use mysql

    # 使root能在任何host访问

    update user set host = '%' where user = 'root';

    # 刷新

    FLUSH PRIVILEGES;

    18.  设置MySQL开启自动启动

    # 将服务文件拷贝到init.d下,并重命名为mysql

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

    赋予可执行权限

    chmod +x /etc/init.d/mysqld

    # 添加服务

    chkconfig --add mysqld

    # 显示服务列表

    chkconfig --list

    # 看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下

    chkconfig --level 345 mysqld on

    如果外部连接失败,可能是防火墙的问题,最直接的就是把防火墙关掉

    systemctl stop firewalld

    这是最快捷的方法,但是有时间限制,也可以开机就禁用

    systemctl disable firewalld.service

    目前我用的是开放端口的方式,开放端口其实比较贴合实际,如果你用云服务器,显然完全关闭防火墙不是那么好,可以使用开放端口的方式

    firewall-cmd --zone=public --add-port=80/tcp --permanent   # 开放80端口   (按需替换端口号就行)

    firewall-cmd --zone=public --remove-port=80/tcp --permanent  #关闭80端口

    firewall-cmd --reload   # 配置立即生效

    查看防火墙所有开放的端口
    firewall-cmd --zone=public --list-ports

  • 相关阅读:
    C++day5
    D-Desthiobiotin-PEG4-Maleimide主要物理性质特点 !
    [TIST 2022]No Free Lunch Theorem for Security and Utility in Federated Learning
    C++,STL
    Map接口
    Java中的基本容器知识你真的了解过吗?
    PolarDB 卷来卷去 云原生低延迟强一致性读 1 (SCC READ 译 )
    云安全系列4:解析云安全工具集
    matplotlib 文字标注(text、annotate)例程
    盘点:专业OKR管理工具有哪些?
  • 原文地址:https://blog.csdn.net/m0_52191385/article/details/132625997