离线安装 MySQL(无需ROOT权限)
写这篇文章的原因很简单,公司需要我在上海一家医院部署一个项目,需要用到MySQL,但是给了CentOS服务器却不给我root账号,其实我也挺菜的之前也根本没遇到过这种情况,这次算是踩坑,留作记录。
准备
-
MySQL安装包(Linux - Generic CentOS可用)
下载地址:https://downloads.mysql.com/archives/community/
安装
上传(略 我上传到了/usr/dev
)
解压
tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
重命名文件夹
mv mysql-5.5.41-linux2.6-x86_64 mysql
生成配置
进MySQL目录
cd mysql
创建配置文件
touch my.cnf
编写配置
确认当前用户以及当前路径,配置文件中会用到
编辑配置文件vim my.cnf
,将以下内容添加到配置文件中,并根据自己当前用户以及路径修改下面一些参数
[client]
port = 3306
user = lzh # user 设置为当前用户,我当前用户为 lzh
socket = /usr/dev/mysql/mysql.sock # socket 设置为当前路径加 mysql.sock,我当前路径为
[mysqld]
port = 3306
user = lzh # 同上
socket = /usr/dev/mysql/mysql.sock # 同上
pid-file = /usr/dev/mysql/mysql.pid # 设置为当前路径加 mysql.pid
basedir = /usr/dev/mysql # 设置为当前路径
datadir = /usr/dev/mysql/data # 设置为当前路径加 data
log-error = /usr/dev/mysql/log/error.log #设置为当前路径加 log/error.log
# -------------- 以下所有内容根据自己需求修改,可不改动 --------------
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
执行初始化命令
首先需要先为日志文件创建文件夹
mkdir log # 根据自己配置的 log-error 创建
执行初始化命令
bin/mysqld --defaults-file=my.cnf --initialize # defaults-file 指向我们刚才生成的配置文件
没有报错,说明数据库已经初始化成功了
启动MySQL
设置root密码
启动之前需要现修改密码,之前执行的初始化命令已经为root生成了密码,就在日志文件中,我们需要先记录这个密码
cat log/error.log |grep 'root@localhost' # 查看日志文件,并搜索带密码的那一行
然后修改密码
bin/mysqladmin --defaults-file=my.cnf -u root -p password 'root' # 修改密码,这里我将密码也设为 root
提示需要输入密码,将之前MySQL自己生成的密码粘贴到这里回车即可,警告信息不用管,完成之后密码就修改完成了
启动服务
bin/mysqld_safe --defaults-file=my.cnf &
启动成功,验证一下
看到MySQL的进程存在,没得问题
登录MySQL
bin/mysql --defaults-file=my.cnf -u root -p
输入新设置的密码,我这里输root
,登录成功
以上就是离线且不用root权限部署MySQL的全部内容,希望能帮到大家,有任何疑问请留言吧。