Advertisement

Linux解压Jar包离线安装Mysql5.7

阅读量:
卸载系统自带的Mariadb(首次安装)
复制代码
    //删除
    rpm -e `rpm -qa|grep mariadb` --nodeps
    //再次查询是否已删除
    rpm -qa | grep mariadb
SELINUX(首次安装)
复制代码
    vi /etc/selinux/config
    SELINUX=disabled
创建mysql用户和mysql用户组(首次安装)
复制代码
    /etc/group是用户组文件。数据表示为:组名:口令:组标识号:组内成员列表
    /etc/passwd是用户文件。数据表示为:用户名:口令 :用户标识号:组标识号:注释性描述:主目录:登录shell
    
    //检查mysql组和用户是否存在
    cat /etc/group | grep mysql
    cat /etc/passwd | grep mysql
    //添加mysql用户组,将用户mysql加入到mysql组中
    groupadd mysql
    //添加mysql用户
    useradd -g mysql mysql
    //修改mysql用户的登陆密码
    passwd mysql
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/XYydmzu90CcnIrV3qoU45bB7eHfh.png)
备份(非首次安装)
复制代码
    //关闭mysql进程
    service mysqld stop
    //备份
    mv /etc/my.cnf /etc/my.cnf_bak
    find / -name mysql
    //数据备份
    mv /usr/local/mysql/data/ /usr/local/data_bak
    mv /usr/local/mysql/ /usr/local/mysql_bak
    //导出某个数据库的所有表结构和数据(此时不用加-d),由于数据量太大,此方法可能不适用
    mysqldump -h 192.168.1.111 -u xyp9x -p device > 2.sql
    //存储过程导出:
    mysqldump -R -ndt -uxyp9x -p device > ai_iot_procedure20210826.sql
    //查看下导出来的sql语句是否正确
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/NrSltIjEJwVC4DKLGezHFd8k3XWy.png)
解压(首次安装和非首次安装)
复制代码
    tar -zxf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
    mv /usr/local/mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql
    //创建data目录,创建log目录
    mkdir /usr/local/mysql/data /usr/local/mysql/log
    touch /usr/local/mysql/log/log_error.log
    chown -R mysql:mysql /usr/local/mysql
    //初始化
    /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
配置文件my.cnf(首次安装)
复制代码
    touch /etc/my.cnf
    vi /etc/my.cnf
    
    [mysqld_safe]
    #数据库错误日志文件
    log-error=/usr/local/mysql/log/log_error.log
    
    [mysqld]
    skip-grant-tables
    
    #Mysql服务的唯一编号,每个mysql服务Id需唯一
    server-id=1
    
    #MySQL安装根目录
    basedir=/usr/local/mysql/
    
    #MySQL数据文件所在位置
    datadir=/usr/local/mysql/data
    
    #用于本地连接的socket套接字,mysqld守护进程生成了这个文件
    socket=/tmp/mysql.sock
    
    #客户端设置,即客户端默认的连接参数
    user=mysql
    symbolic-links=0
    
    #是否对sql语句大小写敏感,1表示不敏感
    lower_case_table_names=1
    
    #默认连接端口,默认是3306,可更改
    port=3306
    
    #拼接字符串长度
    group_concat_max_len=102400
    
    #本地安全路径,导入导出sql表数据
    secure_file_priv=""
    
    #关闭ONLY_FULL_GROUP_BY SQL模式,默认为启用
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    
    #主从复制设置
    #开启mysql binlog功能
    log-bin=mysql-bin
    #STATEMENT模式(SBR):每一条会修改数据的sql语句会记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题)
    #ROW模式(RBR):不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了。而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨。
    #MIXED模式(MBR):以上两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。
    binlog_format=MIXED
    #超过15天的二进制日志会被自动删除
    expire_logs_days=15
    
    #允许最大连接数
    max_connections=500
    
    #数据库默认字符集
    character-set-server=utf8
    
    #默认存储引擎INNODB
    default-storage-engine=INNODB
    
    #SQL数据包发送的大小,如果有BLOB对象建议修改成1G
    max_allowed_packet=16M
    
    [client]
    port=3306
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/ynQUSkgtxfIca3Nr86ZpWiFPvY2w.png)
还原数据(非首次安装)
复制代码
    //还原配置文件
    mv /etc/my.cnf_bak /etc/my.cnf
    vi /etc/my.cnf,不注释skip-grant-tables
    //如果升级mysql版本,判断新版本mysql的mysql库下和旧版本mysql的mysql库下的表个数是否一样
    ls -l | grep "^-" | wc -l
    //如果一样备份新库的mysql文件
    mv /usr/local/mysql/data/mysql /usr/local/mysql-20211201
    cp -r /usr/local/data_bak/mysql/ /usr/local/mysql/data/
    if(没备份mysql库){
    vi /etc/my.cnf,不注释skip-grant-tables
    }
    //将备份的数据文件中的数据库文件夹复制到data目录下
    //数据库引擎使用innodb时,ibdata1文件保存了数据库元数据信息,里面保存了每个数据库里的每个表的ID
    cp -r /usr/local/data_bak/ibdata1 /usr/local/data_bak/iot_device_information/ /usr/local/data_bak/metastore/ /usr/local/data_bak/xyp9x/ /usr/local/mysql/data/
    //修改权限
    chown -R mysql:mysql /usr/local/mysql
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/nfP4LIMVa8ObNCJdiYr2jDWzku07.png)
启动(首次安装和非首次安装)
复制代码
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    chmod 755 /etc/init.d/mysqld
    chmod 755 /etc/my.cnf
    service mysqld start
    chkconfig --add mysqld
    if(备份了mysql库){
    到此为止,进入mysql客户端验证数据库是否正常
    }else{
    继续下一步
    }
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/TN1Uc5LID4fkpPbtgQ8SqzX9EZaC.png)
添加环境变量(首次安装)
复制代码
    vi /etc/profile
    
    # Mysql
    export MYSQL_HOME=/usr/local/mysql
    export PATH=$PATH:$MYSQL_HOME/bin
    
    source /etc/profile
修改密码(首次安装和非首次安装)
复制代码
    输入mysql
    
    mysql> update mysql.user set authentication_string = password('root') where user='root';
    mysql> flush privileges;
    vi /etc/my.cnf,注释掉skip-grant-tables
    service mysqld restart
    mysql -uroot -proot
    mysql> alter user user() identified by "root";
远程访问与权限(首次安装和非首次安装)
复制代码
    mysql> select host, user from mysql.user;
    +-----------+---------------+
|host|user|

    +-----------+---------------+
|localhost|mysql.session|
|---|---|
|localhost|root|

    +-----------+---------------+
    3 rows in set (0.00 sec)
    
    //指定root用户能远程连接mysql
    mysql> update mysql.user set host = '%' where user = 'root';
    
    //创建普通用户和用户密码
    mysql> create user 'xyp9x'@'%' identified by 'xyp9x';
    
    //修改指定用户密码
    mysql> update mysql.user set authentication_string = password('xyp9x') where user = 'xyp9x';
    
    //删除账户及权限
    mysql> drop user 'xyp9x'@'%';
    mysql> flush privileges;
    
    //普通用户导入数据权限
    mysql> select super_priv from mysql.user where user = 'xyp9x';
    mysql> update mysql.user set super_priv='Y' where user = 'xyp9x';
    
    //查看普通用户权限(无任何权限)
    mysql> show grants for xyp9x;
    +-----------------------------------+
|Grants for xyp9x@%|

    +-----------------------------------+
|GRANT USAGE ON *.* TO 'xyp9x'@'%'|

    +-----------------------------------+
    
    //权限赋给普通用户
    mysql> grant all privileges on xyp9x.* to 'xyp9x'@'%';
    mysql> grant select,insert,update,delete,create on xyp9x.* to 'xyp9x'@'%';
    
    //查看普通用户权限
    mysql> show grants for xyp9x;
    +--------------------------------------------------+
|Grants for xyp9x@%|

    +--------------------------------------------------+
|GRANT ALL PRIVILEGES ON *.* TO 'xyp9x'@'%'|
|---|

    +--------------------------------------------------+
    
    //撤销普通用户的权限
    mysql> revoke all privileges on xyp9x.* from 'xyp9x'@'%';
    mysql> flush privileges;
    
    //创建数据库
    mysql> create database xyp9x;
    mysql> flush privileges;
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/MgEd3LrsIpPnRHjXywbTU4AxF7DC.png)

全部评论 (0)

还没有任何评论哟~