美文网首页Linux
centos7 解压安装mysql——CentOS7常用软件

centos7 解压安装mysql——CentOS7常用软件

作者: maxzhao_ | 来源:发表于2018-12-10 11:53 被阅读3次

    来自那些年我踩过的坑,遇到坑请提出来大家一起看看
    都说MySql8.x比5.7快两倍,可以参考一下。
    但不支持从 MySQL 8.0 降级到 MySQL 5.7(或从某个 MySQL 8.0 版本降级到任意一个更早的 MySQL 8.0 版本)。数据备份方式还是可以的。

    这里安装的是MySql 8

    下载地址:https://dev.mysql.com/downloads/mysql/8.0.html
    我这里下载的是mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

    一、解压mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

    首先解压,输入mysql按tab补齐,/home/mysql是自己想要安装的目录.
    没有权限用su输入root密码,用root执行。
    tar -xvf报gz错误,就用tar -zxvf 解压命令

    tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
    mv mysql-8.0.13-linux-glibc2.12-x86_64 /home/mysql
    cd /home/mysql
    

    二、可以先把mariadb卸载了

    mariadb其实与mysql是一样的,只不过mysql之父离开了Oracle,觉得依靠Oracle不靠谱,想做一个完全开源的数据库,这就是mariadb,mariadb的端口还是3306。

    rpm -qa|grep mariadb
    #mariadb-libs-5.5.60-1.el7_5.x86_64
    rpm -e --nodeps mariadb  #tab补齐
    #删除etc目录下的my.cnf文件
    #可以先看一下my.cnf文件里面写的什么
    cat /etc/my.cnf
    #如果mariadb没有启动过,里面的文件夹和文件都不用看了,都是不存在的(也可以不删除,后面还会创建)
    rm /etc/my.cnf
    #检查mysql有没有安装
    rpm -qa | grep mysql
    

    三、检查mysql组和用户是否存在,如无创建

    cat /etc/group | grep mysql 
    cat /etc/passwd | grep mysql
    #没有就u添加
    groupadd mysql
    useradd -g mysql mysql 
    passwd mysql
    #当前所属赋给mysql
    mkdir /home/mysql/data
    #在mysql中添加data文件夹
    chown -R mysql /home/mysql/
    chgrp -R mysql /home/mysql/
    #chown -R mysql:mysql /home/mysql/ 效果一样
    

    四、在/etc下创建my.cnf

    编码在5.5.3以上都会支持utf8mb4(utf8 most byte 8),意思是支持4byte的不常用汉字和Emoji表情,毕竟65535还真的是不够用。
    对于 CHAR 类型数据,utf8mb4 会多消耗一些空间,根据 Mysql 官方建议,使用 VARCHAR 替代 CHAR。

    vim /etc/my.cnf
    

    删除所有内容,添加下面内容

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8 
    [mysqld]
    skip-name-resolve
    #设置3306端口
    port = 3306 
    # 设置mysql的安装目录
    basedir=/home/mysql
    # 设置mysql数据库的数据的存放目录
    datadir=/home/mysql/data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎,innodb支持事物
    default-storage-engine=INNODB 
    lower_case_table_names=1
    max_allowed_packet=16M
    

    五、安装

    #已经不用的命令
    #bin/mysql_install_db --user=mysql --basedir=/home/mysql/ --datadir=/home/mysql/data/
    bin/mysqld --initialize --user=mysql  --datadir=/home/mysql/data/ 
    

    记住密码,比如我的Lpo9n/(w-1=;(输入n次失败的悲哀)

    安装失败,可以看一下mysql 账户对/home/mysql下的文件有没有读写权限
    如果执行报错UTF8MB4,就把/etc/my.cnf的utf8换成UTF8MB4

    六、连接

    启动(&是放在后台执行)

    bin/mysqld_safe --user=mysql &
    bin/mysqld -uroot -p
    

    然后执行(但是如果使用无密码的方式登陆,就不可以使用下面令名)

    bin/mysql  -uroot -p  
    #输入密码
    mysql>alter user 'root'@'localhost' identified by "123456";
    #创建远程连接
    mysql> create user root@'%' identified by '123456';
    mysql>grant all privileges on *.* to root@'%';
    mysql>flush privileges;
    

    无密码的方式,可用于找回密码。
    输入一百次也输入不对默认密码
    配置文件 MySQL 免密码登录
    编辑 MySQL 的配置文件

    vim /etc/my.cnf
    #在 datadir开头的下面一行加入下面这句
    skip-grant-tables
    

    修改密码(记得删除my.cnf文件的东西)

    bin/mysql 
    use mysql;
    update user SET Password = 'new-password' WHERE User = 'root'; 
    

    七、后续操作

    创建软连接

    ln -s /home/mysql/bin/* /usr/local/bin/
    /usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件。

    添加服务

    将服务文件拷贝到init.d下,并重命名为mysqld
    cp support-files/mysql.server /etc/init.d/mysqld
    赋予可执行权限
    chmod +x /etc/init.d/mysqld
    添加服务
    chkconfig --add mysqld
    关闭firewall,安装iptables可选(比如服务器就需要开放3306)

    结束

    相关文章

      网友评论

        本文标题:centos7 解压安装mysql——CentOS7常用软件

        本文链接:https://www.haomeiwen.com/subject/uldthqtx.html