centos7源码编译mysql

centos7源码编译mysql


实验环境:centos7(VM虚拟机)
安装版本:mysql-5.5.62

下载mysql
下载链接:https://pan.baidu.com/s/1RgL70vmy4OLj57zgOL6p9A

此处就不在重复上传操作,如需了解可以看我发的上一篇文章

下边开始进行编译安装

安装依赖包

yum -y install cmake ncurses ncurses-devel bison libaio-devel autoconf

使用tar工具解压缩已上传的mysql安装包

tar xvf mysql-5.5.62.tar.gz

创建mysql用户

useradd mysql -s /sbin/nologin -M

编译安装mysql

cd mysql-5.5.62 \

#自定义配置详解
#-DCMAKE_INSTALL_PREFIX   自定义mysql安装目录
#-DDEFAULE_CHARSET   设置默认使用的字符集编码 utf8
#-DDEFAULE_COLLATION   设置默认使用的字符集校对规则,utf8_general_ci
#-DEXTRA_CHARSETS   开启其他所有字符集的支持
#-DSYSCONFIDIR   自定义初始化参数文件目录
#-DMYSQL_DATADIR   自定义数据目录存储位置
#-DMYSQL_UNIX_ADDR   自定义mysql的通讯目录

#存储引擎规则设置
#MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
#静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1
#可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)

#自定义配置
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULE_CHARSET=utf8 -DDEFAULE_COLLATION=utf8_general_ci -DEXTAR_CHARSETS=all -DSYSCONFIDIR=/home/mysql -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock -DWITH_INNOBASE_STORANGE_ENGIN=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/data -DWITH_BOOST=boost -DWITH_SYSTEMD=1 \
#编译
make \
#安装
make install \

将mysql用户作为数据库目录所有者

chown -R mysql.mysql /usr/local/mysql

为mysql设置环境变量:

echo 'PATH=$PATH:/usr/local/mysql/bin/' >> /etc/profile

设置全局变量

echo 'export PATH' >> /etc/profile

使变量生效

source /etc/profile

对mysql进行初始化

#进入mysql安装目录
cd /usr/local/mysql \
#初始化
bin/mysqld --initalize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

为方便使用,我们需要将mysql服务添加到系统服务中

cp /usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ \
cp support-files/mysql.server /etc/init.d/mysqld \
chmod +x /etc/init.d/mysqld \

将mysql添加至系统服务管理器

chkconfig --add mysqld \
chkconfig --level 35 mysqld on

重新加载系统服务管理器配置

systemctl daemon-reload

启动mysql,看是否能够正常启动

systemctl start msyqld

查看是否mysql有没有成功启动

netstat -tlnp | grep 3306 或者 netstat -tlnp | grep mysql

如果没有启动成功请进行再次初始化

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data \
ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock \(如果没有该目录就创建之后赋权:1. mkdir /home/mysql   2. touch /home/mysql/mysql.sock  3. chown -R mysql:mysql /home/mysql)

重新加载配置
systemctl daemon-reload

再次启动然后查看是否能够正常启动,
如果没有成功启动可以尝试移除my.cnf配置文件(将my.cnf重命名即可)。再进行启动:

mv /etc/my.cnf /etc/my.cnf.backup1

#如果不移除配置文件可以将配置文件修改为以下内容:(再次启动如果还有报错可以查看报错文件)
[mysqld]
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
user = mysql
tmpdir = /tmp

#重新启动mysql,可以发现已经成功了
systemctl restart mysql

接下来就要更新mysql的帐号密码了:

#输入mysql,进入mysql命令台(图标会变为mysql>)
mysql \
#更新帐号密码(mysql命令逗号不可省略)
#1. 查看数据库
show databases; \
#2. 使用mysql默认的数据库
use mysql; \
#3. 更新root用户的密码
update user set password=password("root") where user="root";
#4. 刷新
flush privileges;
#5. 退出数据库
quit;
#6. 使用用户密码重新连接数据库
mysql -u root -p \
#密码不会显示,可以直接输入密码后回车
root

mysql常用管理命令

#查看安装的mysql版本号,登录之后会显示当前使用数据库版本号
mysql -u root -p
root

#启动命令
systemctl start mysql
#关闭命令
systemctl stop mysql
#重启命令
systemctl restart msyql
#将apache设置为开机自启动
systemctl enable mysql

mysql操作命令

# 增加用户
① use mysql;
② insert into mysql.user(host,user,password) values('localhost','test',password('root')); 
# 查找所有用户
① use mysql;
② select host,user from user;
# 创建数据库
create database test;
# 为用户授权数据库
① grant all on test.* to 'test';
② flush privileges;
# 删除用户
delete user from user where user='test';
# 删除数据库
drop database test;

你可能感兴趣的:(centos7源码编译mysql)