写在前面
今天帮同学在服务器上部署MySQL,因为我们不允许将系统环境做个人化的修改,因此不能使用删除Mariadb的方法。网上的方法大多适用于个人机器,对环境的破坏比较严重,基本就是全局环境下的暴力安装。下面介绍一种可以让普通用户就能自己定制MySQL配置而不影响全局环境的方法,由于是安装成功后才想到的写这篇文章,可能会有疏漏之处,欢迎大家评论指出,我会及时修改。
我的系统环境:CentOS 7
下载MySQL
首先,下载对应版本的MySQL,我下载的是下面这个版本:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.29-el7-x86_64.tar
然后解压
tar -xvf ./mysql-5.7.29-el7-x86_64.tar
进入目录
cd mysql-5.7.30-el7-x86_64
我为了便于之后的使用,把上面这个目录加在了~/.bashrc
里面,大家可按需添加
export MYSQL_HOME=你的路径/mysql-5.7.30-el7-x86_64
添加完后别忘了source ~/.bashrc
创建你的自定义配置文件
cd $MYSQL_HOME
里,首先创建一个data目录
mkdir data
请确保data目录里是空的,如果后续操作你有问题,想重新修改配置并初始化,可能会报data目录不为空的错误,这时候把data目录清空就行了(清空前请三思,别清错了)
之后我们在$MYSQL_HOME
中创建一个my.cnf文件:
vi ./my.cnf
在my.cnf中输入下段代码:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=你的路径/mysql-5.7.30-el7-x86_64/mysql.sock
[mysqld]
skip-name-resolve
skip-grant-tables # 这步是为了跳过root的密码验证,如果是你个人使用的话,其实不用密码更方便
#设置3306端口
port = 3306
socket=你的路径/mysql.sock #这个不需要自己创建,把路径指定好就行
# 设置mysql的安装目录,我用的是刚才bashrc里设置的MYSQL_HOME
# 特别注意,不要直接写$MYSQL_HOME,要打完整的路径,不然mysqld启动时会有奇怪的错误
basedir=改成你的MYSQL_HOME路径
# 设置mysql数据库的数据的存放目录, 这里就是刚才我们创建的data目录的路径
datadir=你的MYSQL_HOME路径/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#lower_case_table_name=1
max_allowed_packet=16M
#plugin所在目录 这步很重要,这个得手动指定,不然会报错。该目录不需要手动创建,在$MYSQL_HOME/lib下面有
plugin_dir=你的MYSQL_HOME路径/lib/plugin
主要配置文件就是上面这个,如果你有自定义的需求,就在上面改配置文件,然后重启mysqld就行了。
运行命令
server启动
关键点:指定你的my.cnf文件,注意是mysqld
$MYSQL_HOME/bin/mysqld --defaults-file=$MYSQL_HOME/my.cnf --user=root
server关闭
直接关掉刚才的mysqld终端,然后用ps -ef | grep mysql
,把里面mysqld的进程kill掉就好了kill -9 PID
client启动
$MYSQL_HOME/bin/mysql --defaults-file=$MYSQL_HOME/my.cnf -uroot -p
不需要输密码,也不能改密码,因为之前my.cnf配置文件里跳过了密码验证
简单测试一下,SHOW DATABASES;
完成。