• Linux安装mysql


    原文参考如下文章:

    https://blog.csdn.net/qq_35206261/article/details/81321201

    (这篇文章写得已经很好了,只是按照该文章的安装步骤,我遇到了一点问题,所以参考上面的文章,稍作修改,记录了一下)

    1、下载 mysql 安装包,并解压到 /usr/local/mysql 文件夹

      Linux安装mysql服务分两种安装方法: 

      ①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错,故不推荐

       ②使用官方编译好的二进制文件安装,优点是安装速度快,安装步骤简单,缺点是安装包很大,推荐

       为了加快下载速度,使用华为的镜像,地址如下:https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

    在 Linux 中,执行如下命令:

    # 切换到 /usr/local
    cd /usr/local
    # 下载 mysql 镜像安装包
    curl -O https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
    # 解压
    tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
    # 重命名文件夹为 mysql
    mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql

    2、添加用户组mysql和用户mysql,并将其添加到mysql用户组中

    # 添加用户组 mysql
    groupadd mysql
    
    # useradd -r参数表示mysql用户是系统用户,不可用于登录系统
    # useradd -g参数表示把mysql用户添加到mysql用户组中
    useradd -r -g mysql mysql

    3、检查是否安装了 libaio

    rpm -qa | grep libaio
    
    # 如果未安装,执行如下命令安装
    yum install libaio

    4、配置 my.cnf 文件

    # 如果 /etc/my.cnf 不存在,则创建
    touch /etc/my.cnf
    
    # 如果 /etc/my.cnf 存在,则清空文件内容
    cd /etc
    :>my.cnf
    
    # vim 编辑 my.cnf,填充如下内容:
    [mysql] # 设置mysql客户端默认字符集 default
    -character-set=utf8 [mysqld] skip-name-resolve #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=/usr/local/mysql # 设置mysql数据库的数据的存放目录 datadir=/usr/local/mysql/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=16M

    如图:

    5、创建data文件夹

    cd /usr/local/mysql
    mkdir data

    6、将mysql目录的所属用户和组改为mysql

    chown -R mysql:mysql ./

    7、初始化mysqld 生成初始化密码

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

    这里可能会报错(我就报错了)。报错信息

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

    解决方案:

    安装依赖包 yum -y install numactl.x86_64 ,安装完后重新执行初始化即可

    yum -y install numactl.x86_64

    生成的初始密码如下图:

    8、设置开机启动

    # 复制mysql.server脚本到资源目录
    cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
    # 赋予执行权限
    chmod +x /etc/rc.d/init.d/mysqld
    # 将 mysqld 服务加入到系统服务
    chkconfig --add mysqld
    # 检测是否生效
    chkconfig --list mysqld

    得到如下结果,则说明生效:

    启动 mysql 服务:

    9、配置环境变量

    打开/etc/profile配置文件,添加如下内容

    #mysql环境变量
    PATH=$PATH:/usr/local/mysql/bin
    export PATH

    使其立即生效:

    source /etc/profile

    10、修改 mysql 密码

    1)登录

     2)  修改密码

    mysql> SET PASSWORD = PASSWORD('123456');
    mysql> use mysql; mysql> update user set authentication_string=PASSWORD('123456') where User='root';

     3) 允许远程访问

    mysql> grant all privileges on *.* to root@"%" identified by "password" with grant option;
    
    mysql> flush privileges;

    11、如果使用navicate进行远程连接访问,报如下错误:

     解决方案:

    1) 关闭mysql服务

    [root@baidu64 mysql]# service mysqld stop
    Redirecting to /bin/systemctl stop mysql.service

    2) 修改/etc/my.cnf修改为无密码登录

    在my.cnf配置文件添加如下内容:

    # mysql无密码登录
    skip-grant-tables

    3)重启mysql服务

    [root@baidu64 mysql]# service mysqld restart
    Redirecting to /bin/systemctl restart mysql.service

    4)无密码登录mysql

    [root@baidu64 mysql]# mysql -u root

    5)再次修改密码

    mysql> use mysql;
    
    mysql> update mysql.user set authentication_string=password('123456') where user='root' ;

    6) 然后将my.cnf无密码登录配置去掉(就是上面刚加的那句话)

    7) 退出mysql,并重启

    [root@baidu64 mysql]# service mysqld restart
  • 相关阅读:
    Docker安装
    MVC-HtmlHelper简单总结
    D3.js
    分布式事务seata
    彻底搞懂JAVA路径问题
    idea 代码生成
    自动生成 serialVersionUID 的设置
    狂神说SSM框架系列连载
    缓存穿透、缓存击穿、缓存雪崩区别和解决方案
    多线程
  • 原文地址:https://www.cnblogs.com/lkc9/p/11955109.html
Copyright © 2020-2023  润新知