非root安装mysql过程

14. 三月 2017 数据库 0

日前要在公司内网部署一个系统,但是无奈手头没有机器,于是乎就从其他部门借了一台。寄人篱下,拿不到root,也木有sudo,观察了一下系统,似乎已经有一个root的mysql在跑了,但是为了跟root持有者那边业务隔离开,还是决定自己搭一套环境。

首先肯定没法用包管理器,得编译安装了,到mysql官网下载源码并解压

https://dev.mysql.com/downloads/mysql/

我现在的版本是5.7,据说5.5之后全都用cmake了

cmake . -DCMAKE_INSTALL_PREFIX=/home/yiz96/env/usr/mysql \
        -DMYSQL_UNIX_ADDR=/home/yiz96/env/run/mysql/mysql.sock \
        -DSYSCONFDIR=/home/yiz96/env/etc \
        -DDEFAULT_CHARSET=utf8 \
        -DDEFAULT_COLLATION=utf8_general_ci \
        -DMYSQL_DATADIR=/home/yiz96/env/usr/mysql/data \
        -DMYSQL_USER=yiz96 \
        -DMYSQL_TCP_PORT=3307 \
        -DDOWNLOAD_BOOST=1 \
        -DWITH_BOOST=boost

稍微解释一下,这里我的用户名是yiz96,我在yiz96的根目录下放了一个文件夹env,里面放各种etc、var、log、tmp、usr之类的位置(因为非root,访问不到系统的)。在cmake参数里面我指定了socket、config、user、端口等。最后两行因为mysql依赖boost库,系统可能没有或者版本不对,使用这个参数可以在安装时自动下载boost库。

注意:

1. 先把文件夹建立好

2. 能明确指定的尽量明确指定,mysql初始的my.cnf基本都空的,全是默认配置,到时候全是权限问题。

3. 有人觉得在socket上加上port标记更好,比如mysql_3307.sock这样……但是我要告诉你,等到你想改端口或者改socket地址的话,光改my.cnf是不行的……会被写到mysqld启动脚本里面去……

然后就是安装了

make -j 48 & make install

安装完成之后,到env/usr/mysql/bin目录下,执行初始化

./mysqld --initialize  --user=yiz96 --basedir=/home/yiz96/env/usr/mysql --datadir=/home/yiz96/env/mysql/data

这个指令可以帮助你初始化数据库文件,另外用mysql_db_install也可以,但是这个已经提示deprecated了。另外执行完这条指令之后,屏幕上会显示系统为你创建的临时密码,注意保留下来登陆用。

之后,从my.cnf拷到etc下面,就可以启动mysql了。注意一点是如果不指定–deraults-file参数,mysqld会首先去读\etc\my.cnf,其次才是prefix的位置。所以如果系统事先已经存在一个mysql实例的话,这样就会出问题。

./bin/mysqld_safe --defaults-file=.env/etc/my.cnf &

mysqld_safe不是一个mysqld daemon,它其实只是一个脚本,间接启动mysqld,通过ps -ef就可以看出来

然后通过熟悉的方式就可以打开mysql了。

 

在打开mysql,修改密码的时候可能还会踩到其他坑。

比如mysql5.7跟之前比较早的版本修改密码方式不太一样了,以前可能是通过update user set password=password(‘xxx’) where user=root 来设置,现在只需要set password=password(‘xxx’) 就可以了。

另外5.7默认开启了password validator,可能会在修改密码的时候告诉你密码强度不符合要求。如果实在不需要超强密码的话,可以

set global validate_password_policy=0;
set global validate_password_length=5;

validate_password_policy是一个密码强度策略等级,默认是1(密码长度、组成元素)。改成0就只跟长度相关了。

然后validate_password_length可以修改要求的最短密码长度。然后再set password就随便设置了……

 

============================

在写这篇“回忆录”的时候,惊闻机器审批下来了……准备重新部署……


发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据