mysql 数据库编译安装

原创 mysql

目录规划

安装包 /data/tools,mysql 目录:/data/mysql/mysql /data/mysql/data

下载或上传 boost 解压

mkdir -p /data/tools
cd /data/tools

手动上传 boost_1_59_0.tar.gz 至 /data/tools。

tar -xzvf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local
ln -s /usr/local/boost_1_59_0 /usr/local/boost

软连接做完后如图:

mysql-compile-install-1.jpg

下载或上传 mysql

版本:mysql-5.7.19.tar.gz

手动上传 mysql-5.7.18.tar.gz 至 /data/tools

cd /data/tools
tar -xzvf mysql-5.7.18.tar.gz 

搭建 yum 源

cd /etc/yum.repos.d

直接将 CentOS-Base.repo 配置文件拖进该目录

mysql-compile-install-2.jpg

进行 yum 关联

yum clean all
yum list

安装依赖包

yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bibaio* libnum*

创建用户、组及目录

groupadd mysql
useradd -s /sbin/nologin -g mysql -M mysql
mkdir -p /data/mysql/mysql
mkdir -p /data/mysql/data

注1:-s /sbin/nologin 禁止用户登录,-g 属于 mysql 组,-M 表示不创建 home 目录
注2:groupadduseradd 可以使用下面一行命令实现:useradd -s /sbin/nologin -M mysql

编译

必须在 mysql 文件目录下执行

cd /data/tools/mysql-5.7.18
cmake -DCMAKE_INSTALL_PREFIX=/data/mysql/mysql
      -DMYSQL_DATADIR=/data/mysql/data
      -DDEFAULT_CHARSET=utf8
      -DDEFAULT_COLLATION=utf8_general_ci
      -DMYSQL_TCP_PORT=3306
      -DMYSQL_USER=mysql
      -DWITH_MYISAM_STORAGE_ENGINE=1
      -DWITH_INNOBASE_STORAGE_ENGINE=1
      -DWITH_ARCHIVE_STORAGE_ENGINE=1
      -DWITH_BLACKHOLE_STORAGE_ENGINE=1
      -DWITH_MEMORY_STORAGE_ENGINE=1
      -DDOWNLOAD_BOOST=1
      -DWITH_BOOST=/usr/local/boost

mysql-compile-install-3.jpg

注:常用参数说明:

参数 说明
DCMAKE_INSTALL_PREFIX=/data/mysql/mysql 指定mysql程序默认安装目录默认/data/mysql/mysql
DMYSQL_DATADIR=/data/mysql/data 数据文件目录
DDEFAULT_CHARSET=utf8 指定服务器默认字符集 默认是latin1
DDEFAULT_COLLATION=utf8_general_ci 服务器默认的校对规则,默认latin1_general_ci
DMYSQL_TCP_PORT=3306 端口
DMYSQL_USER=mysql 用户
DWITH_MYISAM_STORAGE_ENGINE=1 指定今天编译到mysql的存储引擎,myISAM,MEGE.MEMBER以及csv四种引擎默认被编译只服务器,不需要的特别指定
DWITH_INNOBASE_STORAGE_ENGINE=1
DWITH_ARCHIVE_STORAGE_ENGINE=1
DWITH_BLACKHOLE_STORAGE_ENGINE=1
DWITH_MEMORY_STORAGE_ENGINE=1
DDOWNLOAD_BOOST=1
DSWITH_BOOST=/usr/local/boost

编译安装

普通单核编译,速度慢:

make && make install

快速编译,4 核心同时编译,速度快,根据服务器核心数选择几核:

make -j 4 && make install

mysql-compile-install-4.jpg

make clean
rm -rf CMakeCache.txt

创建配置文件

先备份老的 my.cnf 文件

mv /etc/my.cnf /etc/my.cnf.bak

将 my.cnf 扔进 /etc 目录下,本地已经制作好。

注1:如果 my.cnf 中日志文件在启动时报错,提示 my.cnf 中配置的文件不存在,可以手动创建一个文件,并且进行授权;

touch /data/mysql/mysql/mysql-error.log
chown -R mysql:mysql /data/mysql/mysql/mysql-error.log

注2:配置文件注意事项

设置 mysql 免密登录:

vi /etc/my.cnf
# 添加一行:
skip-grant-tables
# 第一次登陆不想使用系统生成的随机密码或者忘记密码时使用,使用完尽量屏蔽;

mysql-compile-install-5.jpg

# 设置 mysql 大小写不敏感:
vi /etc/my.cnf
# 添加一行:
lower_case_table_names=1 
# 禁用 DNS 查询,提供 mysql 数据库远程连接
skip-name-resolve

设置权限并初始化 mysql 系统授权表

# 文件夹授权
chown -R mysql.mysql /data/mysql/
# 注:使用 root 进行 mysql 初始化,注意需要添加 --user=mysql 参数,会生成一个随机密码(注意保存,初次登陆需要使用)
# 进入 mysql 目录
cd /data/mysql/mysql
./bin/mysqld --initialize --basedir=/data/mysql/mysql/ --datadir=/data/mysql/data/ --user=mysql

mysql-compile-install-6.jpg

或者到 /data/mysql/mysql 下的 mysql-error.log 里查看

mysql-compile-install-7.jpg

配置 mysql 服务开机自动启动

拷贝启动文件到 /etc/init.d/

cp /data/mysql/mysql/support-files/mysql.server /etc/init.d/mysqld 
# 注:拷贝 /data/mysql/mysql/support-files/ 下的 mysql.server 文件到 /etc/init.d/,重命名为 mysqld
# 增加执行权限
chmod 755  /etc/init.d/mysqld  # 或者使用 chmod +x /etc/init.d/mysqld
# 添加开机启动
chkconfig –add mysqld # 不用:chkconfig --level 345 mysqld on 时自动添加
chkconfig --level 345 mysqld on   # 或者使用chkconfig mysqld on
# 设置软连接
ln -s /data/mysql/mysql/bin/mysql  /usr/local/bin/mysql

启动 mysqld

service mysqld start  # 或者 /etc/init.d/mysqld start

访问 mysql

cd /data/mysql/mysql/bin
./mysql -uroot -p # 密码就是上面root运行的时候记录的密码
# 修改mysql密码
update mysql.user set authentication_string =password('123456') where user = 'root';
flush privileges;

mysql-compile-install-8.jpg

注:如果此处报错,提示需要先进行 alter,便使用 alter 进行。

alter user 'root'@'localhost' identified by '123456';
flush privileges;
grant all privileges on *.* to 'root'@'%'identified by '123456' with grant option; // 远程登录
flush privileges;

---root 免密码登陆不用设置,密码忘记时用这个办法

/usr/local/mysql/bin/mysqld_safe -skip-grant-table & mysql -u root mysql
$mysql> UPDATE user SET Password=PASSWORD('密码') where USER='root'
$mysql> flush privileges;

创建数据库(cm cdh 安装时使用)

Cloudera Manager server 数据库

./mysql -u root --password='123456' -e "create user 'cm'@'%' identified by '123456'"
./mysql -u root --password='123456' -e 'create database cm default character set utf8'
./mysql -u root --password='123456' -e "grant all privileges on cm.* to 'cm'@'%'"

注:或者用以下方法:
创建cm用户并授权
mysql -uroot -p123456 登录mysql
create user 'cm'@'%' identified by '123456';
创建cm用户,可以从任何ip登录,密码123456
create database cm default character set utf8;
创建cm数据库,字符集utf8
grant all privileges on cm.* to 'cm'@'%';

授权cm数据库所有权限给cm用户,可以从任何ip登录
现有CDH环境中,只需要配置CM即可,其他数据库不需要;在其他版本中还存在安装其他数据库,现有平台已经不使用。安装CDH时选择免费版,不要选择限时免费版。

如果觉得这对你有用,请随意赞赏,给与作者支持
评论 0
最新评论