[最超详细!!!]ubuntu离线安装Mysql,一键自动化部署shell脚本

本文基于Ubuntu20.04开讲,使用的mysql是5.7版本。

由于公司电脑内部是没有网络的,使用在线安装mysql不得行,于是我大搜开搜,开始上手到一度接近崩溃,有时候一个配置没弄好可能都要拖几天,一堆配置问题让你看的脑袋疼。通过一个多星期的努力,一步一步把mysql给搭建好了,并且自己写了一个mysql离线自动化部署的shell脚本,直接上操作步骤(详细解释)

不想看文章的可以直接百度网盘链接提取,里面包含安装包,依赖包,自动化部署脚本offline.sh可以直接运行(注意:博主用的是ubuntu20.04,最好一致)

通过百度网盘分享的文件:mysqIinstall
链接:百度网盘 请输入提取码
提取码:qwjk

1.建立mysql账户和组

#建立mysql账户和组
#手动创建/etc/my.cnf文件,防止没有的情况
sudo touch /etc/my.cnf

#创建mysql用户组
sudo groupadd mysql

#创建一个名为mysql 的用户,并且加入mysql用户组
sudo useradd -g mysql mysql

2.安装所需要的依赖,移动并解压文件

这里我们下载的是mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz,可以点击链接下载

总共需要按照顺序执行三个依赖包(网址我找不到了,就给放百度网盘分享给你们)----数据库初始化才不会报错

(1)libaio1_0.3.112-5_amd64.deb,(2)libtinfo5_6.2-0ubuntu2_amd64.deb,(3)libncurses5_6.2-0ubuntu2_amd64.deb

#安装依赖包
sudo dpkg -i libaio1_0.3.112-5_amd64.deb
sudo dpkg -i libtinfo5_6.2-0ubuntu2_amd64.deb
sudo dpkg -i libncurses5_6.2-0ubuntu2_amd64.deb

#移动并解压文件
#先切换到你所下载的目录下面,例如就在项目下就不需要换位置,压缩包为你自己下载的名字
tar -zxvf mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz

#移动文件并且修改名字
sudo mv mysql-5.7.9-linux-glibc2.5-x86_64 /usr/local/mysql

3.更改所属的组和用户

更改用户属性都需要使用管理员运行,写入指定内容配置my.cnf文件

#更改所属的组和用户
#切换到指定目录下
cd /usr/local
#更改mysql的权限
sudo chown -R mysql mysql
sudo chgrp -R mysql mysql/
#进入mysql文件夹
cd mysql/
#为了防止以前有存于data,固先删除
sudo rm -r data
#创建data文件夹
sudo mkdir data
#更改权限
sudo chown -R mysql:mysql data
sudo mkdir /var/lib/mysql
sudo chown -R mysql /var/lib/mysql
sudo chgrp -R mysql /var/lib/mysql
#授予my.cnf权限
sudo chown $USER /etc/my.cnf
#编辑my.cnf文件,直接覆盖内容写入(按照我下面的内容写入)如果自己要改端口,可以修改里面的port值
printf "[mysql]

socket=/var/lib/mysql/mysql.sock

#set mysql client default chararter

default-character-set=utf8

[mysqld]

pid-file=/usr/local/mysql/data/mysql.pid

socket=/var/lib/mysql/mysql.sock

#set mysql server port

port = 3306 #默认是3306

#set mysql install base dir

basedir=/usr/local/mysql

#set the data store dir

datadir=/usr/local/mysql/data

#set the number of allow max connnection

max_connections=200

#set server charactre default encoding

character-set-server=utf8

#the storage engine

default-storage-engine=INNODB

#忽略数据库表名的大小写

lower_case_table_names=1

#最大请求包

max_allowed_packet=16M

explicit_defaults_for_timestamp=true

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.server]

user=mysql #用户不是mysql时,更改此处

basedir=/usr/local/mysql"    > /etc/my.cnf

4.设置mysql服务,mysql初始化

只有安装上面三个依赖,到这个步骤才不会出错

#删除data的原因是因为初始化会自动创建
sudo rm -r /usr/local/mysql/data

#mysql初始化
sudo bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

#复制服务启动到mysqld,便于后续service mysqld start启动
sudo cp ./support-files/mysql.server /etc/init.d/mysqld

#赋予mysqld权限
sudo chmod +x /etc/init.d/mysqld

#建立软链接到var/lib/mysql下面
sudo ln -s /usr/local/mysql/mysql.sock /var/lib/mysql/mysql.sock

5.启动mysql服务并添加环境变量

#重加载
sudo systemctl daemon-reload

#先停止服务
sudo service mysqld stop

#启动服务
sudo service mysqld start

#查看服务是否启动
sudo service mysqld status

#如果查看服务启动失败
sudo -i  #进入到管理员身份
#进入到data里面
cd /usr/local/mysql/data
#查看报错日志,出什么错误就对症下药
cat ubuntu.err

6.获得mysql初始密码,并运行登录

运行到下面的内容,会输出初始化root用户的密码,就可以利用这个密码登录了

#将mysql路径加入到环境变量path中
if grep -q "export PATH=\$PATH:/usr/local/mysql/bin
    export LD_LIBRARY_PATH=/usr/local/mysql/lib" ~/.bashrc; then
    echo 'file is existed'
else
    echo "export PATH=\$PATH:/usr/local/mysql/bin
    export LD_LIBRARY_PATH=/usr/local/mysql/lib" >> ~/.bashrc
fi


#保存退出
source ~/.bashrc

#获得mysql初始密码
result=$(sudo cat /root/.mysql_secret)
second_line=$(echo -e "$result" | awk 'NR==2')
echo "$second_line"

7.登录成功修改当前密码,并创建admin(自定义)用户

#使用初始化密码登录mysql
mysql -uroot -p
#输入你的初始化密码
.......


#进入mysql里面
#修改当前用户的密码
set PASSWORD=PASSWORD('123456');  #密码自己可以自定义

#创建用户admin,并设密码为123456
CREATE USER 'admin'@'localhost' IDENTIFIED BY '123456';

 最后到这就mysql部署结束了,如果你还出现问题的话,或者你还没有部署成功的话,我呢已经替大家踩过雷了,请把你的问题放在评论区或者私信我,我会尽量帮你解决。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值