• CentOS7使用tar.gz包安装MySql的踩坑之旅


    由于客户的CentOS服务器没有安装yum工具,只能通过下载tar.gz包安装mysql,于是跟着万能的百度开启了漫漫踩坑之旅:

    1、下载mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

    2、解压到/usr/local/文件夹下,并改名为mysql

    3、添加mysql用户组和mysql用户

    groupadd mysql
    useradd -r -g mysql mysql

    4、进入mysql文件夹

    5、修改当前目录拥有者为刚才新建的mysql用户:

    chown -R mysql:mysql ./

    6、复制默认全局启动参数配置文件到/etc目录:

    网上的教程说是

    cp ./support-files/my-medium.cnf  /etc/my.cnf

    结果发现support-files目录下根据没有my-medium.cnf文件;于是继续百度、google,最终用下面的方式解决:

    先修改support-files/my-default.cnf文件,在文件中增加:

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8 
    socket=/var/lib/mysql/mysql.sock
    
    [mysqld]
    skip-name-resolve
    #设置3306端口
    port = 3306 
    socket=/var/lib/mysql/mysql.sock
    # 设置mysql的安装目录
    basedir=/usr/local/mysql
    # 设置mysql数据库的数据的存放目录
    datadir=/usr/local/mysql/data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为utf8字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    lower_case_table_name=1
    max_allowed_packet=16M

    然后复制到/etc下,并改名为my.cnf:

    cp ./support-files/my-default.cnf  /etc/my.cnf

    7、执行安装包中自带脚本,安装数据库:

    ./scripts/mysql_install_db --user=mysql

    结果报错(具体错误我也忘了),安装不下去,改为:

    ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql

    可以往下装了,但是又报错:Can't find messagefile /usr/share/mysql/errmsg.sys

    网上有解决方案是在my.conf文件的[mysqld]部分增加一句:

    language = /usr/local/mysql/share/english

    但是不起作用,错误依旧。后来我把/user/local/mysql/share/english文件夹下的errmsg.sys文件复制到/usr/share/mysql/下,问题解决,终于装上了。

    8、修改当前目录拥有者为root用户,修改data目录拥有者为mysql用户

    chown -R root:root ./
    chown -R mysql:mysql data

    9、启动mysql

    sudo /usr/local/mysql/support-files/mysql.server start

    10、修改root密码

    ./bin/mysqladmin -u root password '密码'

    11、部署应用后,发现mysql命令可以连接,但是jdbc连不上mysql,经过一番折腾,发现是授权问题,给root授权访问localhost的权限:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'IDENTIFIED BY '12345' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

    神奇的是授权后还是不行,查看mysql的user表:

    SELECT user,host,password FROM mysql.user;

    发现root访问localhost、127.0.0.1、%的密码居然不一样,修改:

    UPDATE mysql.user SET password=PASSWORD('密码') WHERE user='root';

    重启mysql,终于jdbc也可以正常连接了;

    12、 把mysql添加到环境变量:

    vi /etc/profile

    在文件中增加

    export MYSQL_HOME=/usr/local/mysql
    
    export PATH=$PATH:$MYSQL_HOME/bin

    让修改生效

    source /etc/profile

    13、这时再使用mysql命令行连接时又报错:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    查看my.cnf,发现配置了socket=/var/lib/mysql/mysql.sock,于是执行下面的命令创建一个软连接后解决:

    ln -s /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock
  • 相关阅读:
    Redis慢查询日志
    Docker:容器
    CentOS7.X中使用yum安装nginx
    Nginx简介及配置详解(二)
    Nginx简介及配置详解(一)
    Redis持久化策略
    golang学习笔记——异常
    golang学习笔记——面向对象(接口)
    golang学习笔记——面向对象(方法)
    golang学习笔记——struct结构体
  • 原文地址:https://www.cnblogs.com/oliverreal/p/10947038.html
Copyright © 2020-2023  润新知