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
备份(非首次安装)
//关闭mysql进程
service mysqld stop
//备份
mv /etc/my.cnf /etc/my.cnf_bak
find / -name mysql
//数据备份
mv /home/xyp9x/mysql/data/ /home/xyp9x/data_bak
mv /home/xyp9x/mysql/ /home/xyp9x/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语句是否正确
解压(首次安装和非首次安装)
tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz -C /home/xyp9x/
mv /home/xyp9x/mysql-5.7.35-linux-glibc2.12-x86_64 /home/xyp9x/mysql
//创建data目录,创建log目录
mkdir /home/xyp9x/mysql/data /home/xyp9x/mysql/log
touch /home/xyp9x/mysql/log/log_error.log
chown -R mysql:mysql /home/xyp9x/mysql
//如果路径中包含普通用户路径,需要修改普通用户权限
chmod 755 /home/xyp9x
//初始化
/home/xyp9x/mysql/bin/mysqld --initialize --user=mysql --basedir=/home/xyp9x/mysql/ --datadir=/home/xyp9x/mysql/data/
配置文件my.cnf(首次安装)
touch /etc/my.cnf
vi /etc/my.cnf

[mysqld_safe]
#数据库错误日志文件
log-error=/home/xyp9x/mysql/log/log_error.log

[mysqld]
skip-grant-tables

#Mysql服务的唯一编号,每个mysql服务Id需唯一
server-id=1

#MySQL安装根目录
basedir=/home/xyp9x/mysql/

#MySQL数据文件所在位置
datadir=/home/xyp9x/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
还原数据(非首次安装)
//还原配置文件
mv /etc/my.cnf_bak /etc/my.cnf
//如果升级mysql版本,判断新版本mysql的mysql库下和旧版本mysql的mysql库下的表个数是否一样
ls -l | grep "^-" | wc -l
//如果一样备份新库的mysql文件
mv /home/xyp9x/mysql/data/mysql /home/xyp9x/mysql-20211201
cp -r /home/xyp9x/data_bak/mysql/ /home/xyp9x/mysql/data/
if(没备份mysql库){
    vi /etc/my.cnf,不注释skip-grant-tables
}
//将备份的数据文件中的数据库文件夹复制到data目录下
//数据库引擎使用innodb时,ibdata1文件保存了数据库元数据信息,里面保存了每个数据库里的每个表的ID
cp -r /home/xyp9x/data_bak/ibdata1 /home/xyp9x/data_bak/iot_device_information/ /home/xyp9x/data_bak/metastore/ /home/xyp9x/data_bak/xyp9x/ /home/xyp9x/mysql/data/
//修改权限
chown -R mysql:mysql /home/xyp9x/mysql
启动(首次安装和非首次安装)
cp /home/xyp9x/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{
    继续下一步
}
添加环境变量(首次安装)
vi /etc/profile

# Mysql
export MYSQL_HOME=/home/xyp9x/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 | mysql.sys     |
| 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'@'%'       |
| GRANT ALL PRIVILEGES ON `xyp9x`.* TO 'xyp9x'@'%' |
+--------------------------------------------------+

//撤销普通用户的权限
mysql> revoke all privileges on xyp9x.* from 'xyp9x'@'%';
mysql> flush privileges;

//创建数据库
mysql> create database xyp9x;
mysql> flush privileges;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在Linux命令行下,可以使用以下命令将一个jar包解压指定目录: 1. 首先,打开终端。 2. 切换到要将jar包解压到的目录。可以使用`cd`命令来切换目录。例如,要切换到名为`mydir`的目录,可以输入`cd mydir`。 3. 输入以下命令来解压jar包: ``` jar -xvf /path/to/your.jar ``` 请确保将`/path/to/your.jar`替换为你的jar包的完整路径。 上述命令中使用的选项含义如下: - `-x`: 表示解压。 - `-v`: 表示显示详细的输出信息。 - `-f`: 表示后面紧跟着的参数是要处理的jar包。 执行命令后,jar包将被解压到当前目录。 如果你想解压指定目录,可以使用以下命令: ``` jar -xvf /path/to/your.jar -C /path/to/your/directory ``` 请确保将`/path/to/your.jar`替换为你的jar包的完整路径,将`/path/to/your/directory`替换为你想要解压到的目录的完整路径。 上述命令中: - `-C`: 表示解压指定目录。 执行命令后,jar包将被解压指定目录中。 希望以上回答对你有帮助! ### 回答2: 要在Linux解压一个jar包并将其解压指定目录,您可以按照以下步骤进行操作: 1. 打开终端窗口并导航到您想要保存解压后文件的目录。 2. 使用以下命令解压jar文件: ``` unzip /path/to/file.jar ``` 将`/path/to/file.jar`替换为您实际的jar文件路径。 3. 如果要将jar文件解压到不同的目录,可以使用以下命令: ``` unzip /path/to/file.jar -d /path/to/output/directory ``` 将`/path/to/output/directory`替换为您希望将文件解压到的目录路径。 4. 如果您需要将文件压缩为指定的编码格式,可以使用以下命令: ``` unzip -O encoding /path/to/file.jar ``` 将`encoding`替换为您希望使用的实际编码格式,例如UTF-8。 通过按照上述步骤,在Linux上您可以成功解压jar包并将其解压指定目录中。 ### 回答3: 在Linux系统中,要将一个jar包解压指定目录,可以通过使用命令行下的jar命令来完成。 首先,你需要打开终端窗口,然后使用cd命令切换到包含jar包的目录。 接下来,使用以下命令来解压jar包指定目录: jar -xf <文件名>.jar -C /指定目录/ 其中,-xf选项表示解压文件,<文件名>.jar是要解压jar包的文件名,-C选项后面跟着指定的目录。 比如,如果你要将名为example.jarjar包解压到名为target的目录,你可以使用以下命令: jar -xf example.jar -C /target/ 这将会将example.jar解压到当前目录下的target目录中。 当运行完命令后,你可以在指定目录中找到解压后的文件。 另外,如果你需要查看解压后的文件结构,你可以使用tree命令来显示目录结构。使用以下命令来安装tree命令: sudo apt-get install tree 然后,在指定目录中使用tree命令: tree /指定目录/ 这将会显示出指定目录下的文件和目录结构。 通过以上的方法,你可以在Linux系统中将jar包解压指定目录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

衡超越爱学习~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值