前言
众所周知,比起改bug,各种环境坑才是最痛苦的。博主正好最近做了一个小项目,客户提供了一套裸机环境,服务器上只有一套centOS7,mysql、redis、es、mongo、python、java、node、nginx等等是没有的,各种配套都要自己动手去搭建,从0搞一整套环境,过程中会踩很多坑,于是博主决定出一个小系列《环境踩坑系列》,各种常用组件的在centOS上的安装部署,做到复制粘贴,拿来就用。
1.环境
centOS7
mysql5.7.25
2.下载安装
下载地址:
MySQL :: Download MySQL Community Server (Archived Versions)
上传到服务器上:
(博主这里有NFS,所以直接上传NFS了)
解压:
tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
新建用户:
由于mysql是不允许用root用户来进行初始化的,所以要建一个专门用来进行初始化的用户。
- groupadd mysql
- useradd -r -g mysql mysql
配置文件:
新建/etc/my.cnf,初始化的时候默认是去找这个路径下的这个文件的。
配置内容如下:
[client]
default-character-set=utf8[mysqld]
port=3306
basedir=/nfs/my/mysql
datadir=/nfs/my/mysql/dataNew
socket=/tmp/mysql.sock
character_set_server=utf8log-error=/usr/local/mysql/dataNew/mysql.log
pid-file=/usr/local/mysql/dataNew/mysql.pid[mysql]
default-character-set=utf8
上面的配置里面socket=/tmp/mysql.sock很重要,mysql.sock可以理解为客户端和mysql服务器之间进行通信的通道,需要这个东西,才能连的上数据库。默认情况下mysql.sock是不存在的,需要先去把它创建出来,去mysql的安装目录(也就是basedir)下:
./support-files/mysql.server start
然后就可以看到mysql.sock了。
创建需要的目录并赋权:
mkdir /usr/local/mysql/dataNew
chown -r mysql:mysql /usr/local/mysql/dataNew
启动:
./mysqld --initialize --user=mysql --basedir=/nfs/my/mysql/ --datadir=/nfs/my/mysql/dataNew/
启动后去log里面看root的密码:
cat /usr/local/mysql/dataNew/mysql.log
然后用root登录:
./mysql -u root -p
这时候做什么都会被要求改密码:
set password for root@localhost = password('admin');
3.错误处理
使用mysqld命令初始化的过程中可能会遇见:
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such
执行:
yum install libaio-devel.x86_64
./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
执行:
yum -y install numactl
使用mysql命令连接数据库的过程中可能会遇见:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
就去mysql的安装目录下:
./support-files/mysql.server start
然后把mysql.sock放到想放的地方。
版权归原作者 _BugMan 所有, 如有侵权,请联系我们删除。