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;