• linux安装mysql8


    第一步先去mysql官网下载压缩包

    网址:MySQL :: MySQL Community Downloads

    根据自己的系统选择安装包,我这里选择的是X86 64位

    登录linux系统后:

    第一步:

    1)切换到 /usr/local下

    2)、创建mysql文件夹

    mkdir mysql
    
    • 1

    3)、切换到mysql文件夹下

    cd mysql
    
    • 1

    4)解压下载好的mysql8.0安装包

    5)重命名解压出来的文件夹,这里改成mysql

    mv mysql-8.0.29-linux-glibc2.12-x86_64 mysql

    6)/use/local/mysql文件夹下创建data文件夹 存储文件

    mkdir data

    7)分别创建用户组以及用户和密码(如果提示已存在说明之前有创建过了)

    8)、授权刚刚新建的用户

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

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

    9)、配置环境,编辑/etc/profile文件

    vim /etc/profile

    加入环境变量

    10)、编辑my.cnf文件

    vi /etc/my.cnf

    按下面复制进去就好了,#号开头的不用管,一样,添加完之后,换行,打出“:sq”,用来保存文件并退出

    [mysql]
    default-character-set=utf8mb4
    [client]
    #port=3306
    socket=/var/lib/mysql/mysql.sock
    
    [mysqld]
    #port=3306
    #server-id=3306
    user=mysql
    general_log = 1
    general_log_file= /var/log/mysql/mysql.log
    socket=/var/lib/mysql/mysql.sock
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    log-bin=/usr/local/mysql/data/mysql-bin
    innodb_data_home_dir=/usr/local/mysql/data
    innodb_log_group_home_dir=/usr/local/mysql/data/
    character-set-server=utf8mb4
    lower_case_table_names=1
    autocommit=1
    default_authentication_plugin=mysql_native_password
    symbolic-links=0
    # Disabling symbolic-links is recommended to prevent assorted security risks
    # 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.log
    pid-file=/usr/local/mysql/data/mysql.pid
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    11)切换到/usr/local/mysql/bin目录下

    cd bin

    12)初始化基础信息,得到数据库的初始密码(在/usr/local/mysql/bin目录下执行)

    ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize
    
    • 1

    如图,复制出红框的初始密码,保存到本地,后面需要使用到。

    13)复制 mysql.server 文件,在/usr/local/mysql/mysql-8.0目录下执行

    cp -安装目录 ./support-files/mysql.server /etc/init.d/mysql
    
    cp -安装目录 ./support-files/mysql.server /etc/init.d/mysqld
    
    • 1
    • 2
    • 3

    14)、赋予权限

    chown 777 /etc/my.cnf
    chmod +x /etc/init.d/mysql
    chmod +x /etc/init.d/mysqld
    
    • 1
    • 2
    • 3

    15)检查一下/var/lib/mysql是否存在,否则进行创建

    mkdir /var/lib/mysql 
    chown -R mysql:mysql /var/lib/mysql/ 
    
    • 1
    • 2

    16)启动数据库,有SUCCESS字眼说明MySQL安装完成

    service mysql start 
    
    • 1

    ps:
    如果发现启动失败,可以先查看data里面的mysql.log,如果有提示3306这样的字样,第一个想到的应该是端口被占用,
    使用lsof -i:端口号,查看是哪个PID(进程号)占用了该端口,然后使用kill PID(进程号)杀掉进程,重新执行service mysql start

    第二步:修改密码,并设置远程连接(为了可以在别的机器下面连接该mysql)

    1)、修改数据库root账号的密码,并设置可以远程访问(因为root默认是不能远程访问的)

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
    
    • 1

    2)、执行

    flush privileges;使密码生效
    3)、选择数据库

    use mysql;
    4)再修改远程连接并生效

    update user set host=‘%’ where user=‘root’;
    5)执行提交命令,搞定!

    flush privileges;
    最后就可以使用root账号去登录mysql了

    防火墙开启需要把3306加入白名单

    服务器防火墙开启的情况下,必须要让防火墙开启myslq的3306端口,其他服务器上的应用才能成功连接。

    或者直接关闭服务器的防火墙。

    题外:
    给mysql创建新的数据库用户并授予权限

    1)创建用户(名称随意,这里的用户名称为mysql)并可以远程访问
    CREATE user 'mysql'@'%'; 
    #修改密码
    alter user 'mysql'@'%' identified with mysql_native_password by 'tcl.2021'; 
    
    2)创建新的数据库
    #create database 数据库名 default character set utf8mb4 collate utf8mb4_unicode_ci;
    
    
    3)把新的数据库授权给新用户
    #将test库的所有权限赋予mysql用户
    grant all privileges on test.* to "mysql"@"%";
    grant all privileges on test.* to "tcl"@"%";
    
    4)、刷新权限
    flush privileges;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  • 相关阅读:
    Java优雅解决空指针问题源码级别刨析Optional
    静态NAT,动态NAT,NAPT(实验配置+原理讲解)
    第二章 使用 api mgmnt 服务
    构建可维护的大规模应用:框架架构的最佳实践
    “2022数据智能夏令营”开营,大咖授课+丰富活动已就位
    第十五章 字符串本地化和消息字典(一)
    开发指南031-安装ssl证书
    地图上必须要有指北针吗?
    CEC2013(MATLAB):霸王龙优化算法(Tyrannosaurus optimization)求解CEC2013
    golang学习笔记——接口interfaces
  • 原文地址:https://blog.csdn.net/m0_67392182/article/details/126034686