• centos7 安装 mysql8


    https://dev.mysql.com/downloads/repo/yum/

    下载mysql

    wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
    sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm

     

    安装mysql

    yum install mysql mysql-server

    启动mysql

    sudo systemctl start mysqld

    检查mysql状态

    sudo systemctl status mysqld

    有红框的时间就是状态正常

    查看临时密码
    sudo grep ‘temporary password’ /var/log/mysqld.log

    sudo grep ‘temporary password’ mysqld.log

    配置mysql
    sudo mysql_secure_installation

    ========================================================================================================================

    https://dev.mysql.com/downloads/mysql/

    wget  https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz

     

    tar -Jxf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
    mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql

    mysql官网下载的有很多版本,以前的tar, 现在的xz,需要注意的是有的解压出来是直接可用的,有的则只有cmake文件,则需要编译之后再进行使用,具体的编译过程可以在百度搜索。

    创建mysql用户

    groupadd mysql
    useradd -g mysql mysql

    useradd -s /sbin/nologin mysql -M

     赋予/usr/local下面的mysql文件夹权限

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

    chown -R mysql.mysql /usr/local/mysql

     将读写权限赋值给/usr/local/mysql文件夹

    chmod -R 755 /data/mysql /usr/local/mysql

    移动到根目录下的data文件夹,在其下创建/data/mysql/data ,将数据保存到/data/mysql/data 目录下

    新建一个文件夹存储数据、并授权

    mkdir data
    cd /data
    mkdir mysql
    cd mysql
    mkdir data
    cd data
    pwd

     mkdir -p /data/mysql/data

     

    chown -R mysql.mysql /data/mysql/data

     修改/data/mysql 的权限给mysql用户

    chown -R mysql:mysql /data/mysql

    chmod -R 775 /data/mysql/data

     将读写权限赋值给/data/mysql文件夹

    chmod -R 775 /data/mysql

     编辑my.cnf文件,这里本是linux服务器上面没有这个文件vim编辑的时候回自动创建

    vim /etc/my.cnf
    [mysqld]
    skip-name-resolve
    #设置3306端口
    #port=3306
    port=3306
    user=mysql
    #设置mysql的安装目录
    basedir=/usr/local/mysql
    #设置mysql数据库的数据的存放目录
    datadir=/data/mysql/data
    #允许最大连接数
    max_connections=200
    #允许连接失败的次数。
    max_connect_errors=10
    #服务端使用的字符集默认为utf8mb4
    character-set-server=utf8mb4
    collation-server = utf8mb4_general_ci
    #创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    #默认使用“mysql_native_password”插件认证
    #mysql_native_password
    #default_authentication_plugin=mysql_native_password
    lower_case_table_names=1
    max_allowed_packet=16M
    socket=/data/mysql/mysql.sock
    log-error=/data/mysql/error.log
    pid-file=/data/mysql/mysql.pid
    transaction_isolation = READ-COMMITTED
    #sql_mode = “STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO”
    [mysql]
    #设置mysql客户端默认字符集
    default-character-set=utf8mb4
    [client]
    #设置mysql客户端连接服务端时默认使用的端口
    port=3306
    socket=/data/mysql/mysql.sock
    default-character-set=utf8mb4

     sql_mode在5.7有 NO_AUTO_CREATE_USER,但在8.0以后已经取消了

    初始化

    cd /usr/local/mysql
    ./bin/mysqld --initialize --user=mysql

     

     启动mysql

    ./support-files/mysql.server start

     配置 service mysql start启动
    查看init.d 下是否有mysql(关键就是将我们解压的mysqld复制黏贴到init.d下面)

    查看指定文件夹下是否有mysql

    ll /etc/init.d/ | grep mysql

    查找自己安装的mysql.server文件

    find / -name mysql.server

    因为我们刚才安装 /usr/local/mysql目录下,所以可以直接使用下面这句

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

    然后就可以在任意地方运行service mysql restart 啦

    设置开机启动 在/etc/init.d文件夹下操作

    cd /etc/init.d
    chmod 755 /etc/init.d/mysql
    chkconfig --add mysql
    chkconfig --level 345 mysql on
    service mysql restart

    开机后通过 service mysql status 来判断mysql是否运行中

     

     重启服务

    source /etc/profile

    进入mysql

    查看默认密码

    mysql -uroot -p

     

    ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

    查看用户权限

    select host,user from mysql.user;

    授权以及设置账户可以远程连接

    use mysql

    update user set host='%' where user='root';
    grant all privileges on *.* to 'root'@'%';
    flush privileges;
    quit

    grant 授权
    all 所有权限
    . 表示针对 库.表 的权限,这里表示对所有库,所有表都授权
    root 表示用户名
    %表示全网 localhost表示内网允许

    在 my.cnf 的mysqld 下增加

    default_authentication_plugin=mysql_native_password

    进入mysql命令行

    mysql -uroot -p
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    FLUSH PRIVILEGES;

    到这里所有mysql的设置都已经完成了,接下来是防火墙相关,如果你不想关闭防火墙,可以选择开放3306端口

    修改相关文件
    yum -y install iptables-services
    $vi /etc/sysconfig/iptables
    增加规则
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
    $systemctl restart iptables.service #重启防火墙使配置生效

    这里我选择的是直接关闭防火墙…
    $systemctl stop firewalld.service #停止firewall
    $systemctl disable firewalld.service #禁止firewall开机启动

  • 相关阅读:
    java容器01--初遇
    java虚拟机(1)--运行时数据区
    java虚拟机(2)--垃圾收集
    java虚拟机(3)--内存分配与回收策略
    java虚拟机(4)--类加载机制
    bash编程的信号捕获:
    awk纯干货
    shell中各种括号的作用()、(())、[]、[[]]、{}
    find
    awk
  • 原文地址:https://www.cnblogs.com/mingforyou/p/15350406.html
Copyright © 2020-2023  润新知