• Linux 安装Mysql 详细教程


    mysql安装包

     1.安装包下载地址 

     MySQL :: Download MySQL Community Server (Archived Versions)

    2.选择对应的包 如下5.7包

     下载和安装mysql

      

    1. cd /usr/local && mkdir mysql && cd mysql
    2. wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz

      解压mysql

    tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz

    设置环境变量 

    vim /etc/profile

    添加

    export MYSQL_HOME="/usr/local/mysql/mysql-5.7.35"
    export PATH="${MYSQL_HOME}/bin:${PATH}"

    创建mysql用户


     1. 先检查是否有mysql用户组和mysql用户,没有就添加有就忽略:

    groups mysql 

     2.添加用户组和用户

    groupadd mysql && useradd -r -g mysql mysql

    修改my.cnf文件

    1.创建数据目录并赋予权限

    1. mkdir -p /usr/local/mysql/mysql-5.7.35/data
    2. chown mysql:mysql -R /usr/local/mysql/mysql-5.7.35/data

    2.修改配置文件  vim /etc/my.cnf (没有就新建)

    1. [mysqld]
    2. #bind-address=0.0.0.0
    3. port=3306
    4. user=mysql
    5. basedir=/usr/local/mysql/mysql-5.7.35
    6. datadir=/usr/local/mysql/mysql-5.7.35/data
    7. socket=/usr/local/mysql/mysql-5.7.35/socket/mysql.sock
    8. log-error=/usr/local/mysql/mysql-5.7.35/mysql.err
    9. pid-file=/usr/local/mysql/mysql-5.7.35/mysql.pid
    10. #character config
    11. character_set_server=utf8mb4
    12. symbolic-links=0
    13. explicit_defaults_for_timestamp=true

    这里socket设置为/tmp/mysql.sock会报 Can't connect to local MySQL server through socket '/tmp/mysql.sock' ,因为路径需要权限/tmp属于系统文件路径,所以我们可以指定自己创建一个路径,这里我创建的是/usr/local/mysql/mysql-5.7.35/socket,mysql.sock是自动生成的。

    这里还有坑,如果这里不配置[client]是无法命令行登录mysql客户端的,因为不设置socket默认也是/tmp/mysql.sock,所以我们要加上以下配置

    1. [client]
    2. port=3306
    3. socket=/usr/local/mysql/mysql-5.7.35/socket/mysql.sock

    添加后的配置

    1. [client]
    2. port=3306
    3. socket=/usr/local/mysql/mysql-5.7.35/socket/mysql.sock
    4. [mysqld]
    5. #bind-address=0.0.0.0
    6. port=3306
    7. user=mysql
    8. basedir=/usr/local/mysql/mysql-5.7.35
    9. datadir=/usr/local/mysql/mysql-5.7.35/data
    10. socket=/usr/local/mysql/mysql-5.7.35/socket/mysql.sock
    11. log-error=/usr/local/mysql/mysql-5.7.35/mysql.err
    12. pid-file=/usr/local/mysql/mysql-5.7.35/mysql.pid
    13. #character config
    14. character_set_server=utf8mb4
    15. symbolic-links=0
    16. explicit_defaults_for_timestamp=true

    初始化mysql服务

    解压后的mysql-5.7.35-linux-glibc2.12-x86_64文件移动到(文件夹名称修改为mysql不带版本号信息)

    1. cd /usr/local/mysql/mysql-5.7.35/bin
    2. ./mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize

    在安装mysql时如果遇到以下错误

    ./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

    原因是没有安装libaio.so.1,安装即可。

    Ubuntu下执行:

    apt-get install libaio1 libaio-dev

    Redhat/Fedora/CentOS下执行:

    yum install libaio

     启动mysql服务

          mysql.server:启动mysql服务(mysqld)的脚本

    1. cp /usr/local/mysql/mysql-5.7.35/support-files/mysql.server /etc/init.d/mysql
    2. service mysql start

      启动mysql的方式有很多种:

       1. systemctl start mysql

       2.service mysql start

       3.cd /etc/init.d&&./mysql start

    登录mysql客户端

    查看初始化密码

    cat /usr/local/mysql/mysql-5.7.35/mysql.err

     红色方框内容即为初始密码。

    mysql -uroot -p

     输入初始密码即可。

    修改密码

    1. 开启免密码登陆 修改my.cnf文件   默认在/etc/my.cnf。

     vim /etc/my.cnf        

    在【mysqld】模块下面添加:skip-grant-tables 保存退出。

     2. 重启服务,使配置生效 。   

     service mysql restart

    3. 登陆     /usr/local/mysql/bin/mysql -u root -p   //不输入密码直接敲回车键

    4. 刷新规则允许外部访问(根据个人所需设置,非必需设置)
     

    1.  use mysql      #选择访问mysql库
    2.   update user set host = '%' where user = 'root';      #使root能再任何host访问
    3.   FLUSH PRIVILEGES;       #刷新 

    5.修改密码

    1. update user set authentication_string = password('123456'), password_expired = 'N', password_last_changed = now() where user = 'root';
    2. FLUSH PRIVILEGES;       #刷新 

     6. 退出   quit     

       把/etc/my.cnf免密删掉。

        重启服务    service mysql restart

    7. 登陆   /usr/local/mysql/bin/mysql -u root -p   //输入刚修改的密码123456敲回车键


    如果是阿里云ECS,记得查看云安全组规则是否开放了3306端口,如果没有,记得加上

  • 相关阅读:
    Pycharm之配置python虚拟环境
    SpringSecurity系列——访问控制之基于方法的控制day6-3(源于官网5.7.2版本)
    深度剖析Redis九种数据结构实现原理,建议收藏
    Android移动应用开发之Button按钮与事件
    理解SpringBoot的自动装配
    2023年的低代码:数字化、人工智能、趋势及未来展望
    云原生K8S精选的分布式可靠的键值存储etcd原理和实践
    固定代码移动到0000:0200
    Mapper输出数据中文乱码
    基于springboot实现电子招投标系统【项目源码】
  • 原文地址:https://blog.csdn.net/sunboylife/article/details/126574606