Linux 编译安装 mysql 及 mysql++

本文详细介绍了在Linux环境下从零开始编译安装MySQL数据库的过程,包括依赖库的安装、创建用户和目录、配置编译参数、初始化数据库、设置环境变量、安装兼容开发包、备份和还原数据库的方法,以及MySQL的性能优化技巧。

1.2 Linux 编译安装 PHP

1.1 Linux 编译安装 mysql 及 mysql++

  1. 编译安装 MySQL
# 1.安装 mysql 依赖:
yum -y install gcc gcc-c++ make cmake autoconf libtool-ltdl-devel \
gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel \
openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel \
ncurses-devel bzip2 flex libaio-devel perl perl-devel

# 2.创建 mysql 帐号(无需登录), 创建目录及分配权限
groupadd -r mysql                             # groupdel mysql  
useradd -r -g mysql -s /sbin/nologin mysql    # userdel -r mysql

mkdir /usr/local/mysql/data -p              # -p 多级目录
chown -R mysql:mysql /usr/local/mysql       # -R 目录及子目录下所有文件

# 3.编译参数 mysql-5.6.46:
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DENABLE_DOWNLOADS=1 \
-DMYSQL_USER=mysql

make -j4 && make install

# 4.拷贝启动服务的脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
  # 添加到开机启动
chkconfig --add  mysqld
chkconfig mysqld on

  # 开放/删除端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --remove-port=3306/tcp --permanent

# 5. 初始化 mysql
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

# 6.设置环境变量, 让系统识别 mysql 命令
sudo vim  /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile

  # 启动
rm /etc/my.cnf
service mysqld start
  # 或者 systemctl start mysqld
  #     stop | status | restart

  # 重置 mysql 的 root 密码
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
  # root 登录 mysql后
mysql -uroot -p 回车(输密码)
> use mysql;
> select user,password,host from mysql.user;
> # 删除 root| % 以外的账号
> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "password";
> flush privileges;
> \q
  # 重启 mysql
service mysqld restart
# 7.安装兼容开发包 https://downloads.mysql.com/archives/community
# https://downloads.mysql.com/archives/get/p/23/file/MySQL-shared-5.6.46-1.el6.x86_64.rpm
rpm -ih MySQL-shared-5.6.46-1.el6.x86_64.rpm
#安装完后 产生 libmysqlclient.lib
# 8备份(mysqldump命令)------------------ Begin -------------------
#!/bin/bash
dbpath=/home/mysql_backup
sql_name=All_`date +%Y-%m-%d-%H%M%S`.sql
tar_name=All_`date +%Y-%m-%d-%H%M%S`.tar.bz2
#仅保留最近两个月备份,过期删除
expired_name=All_`date -d '-60 days' +%Y-%m-%d-*`.tar.bz2

/usr/local/mysql/bin/mysqldump -uroot -p密码 --lock-all-tables --all-databases > /home/mysql_backup/$sql_name

cd $dbpath
tar jcf $tar_name $sql_name
rm -rf  $sql_name
# 删除过期文件
rm -rf $expired_name
#或 find $dbpath -mtime +60  -name "*.tar.bz2" -exec rm -rf {} \;
#------------------------ END -------------------------------

# 还原
mysql -uroot -p < All_xxxxx.sql 回车(输密码)
#---------------------------------------------------------


# 计划任务:
crontab -e
50 23 * * * /home/data/auto_backup_mysql_db.sh >/dev/null 2>&1
 #每晚23:50 (分 时 日 月 星期)(逗号表间隔, -表连续, */表示每多少单位)
# service crond reload
# service crond restart

【MySQL 性能优化】

  1. mysqlpp: (开源第三方库, 封装了 c++ 对 mysql 的操作)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值