Mysql
1.安装编译环境 2.下载源码包 3.添加用户和权限 4.编译安装 5.初始化数据库 6.配置系统服务、添加环境变量
1. yum install -y git cmake gcc gcc- c++ bison ncurses ncurses-devel
wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar -zxvf boost_1_59_0.tar.gz -C /usr/local/
2. wget https://downloads.mysql.com/archives/get/file/mysql-5.7.21.tar.gz
tar -zxvf mysql-5.7.21.tar.gz
3.
mkdir /www/mysql/mysql #安装目录
mkdir /www/mysql/data #数据目录
mkdir /www/mysql/log #日志目录
groupadd -g 701 mysql
useradd -M -g mysql -u 1101 -s /sbin/nologin mysql #建立mysql账号,-M不建立家目录,-s自动以shell为/sbin/nologin账号不chown -R mysql:mysql /www/mysql
4. 在/usr/local下创建一个名为boost的文件夹
mkdir -p /usr/local/boost
cd /usr/local/boost
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar -xvzf boost_1_59_0.tar.gz
cmake . -DCMAKE_INSTALL_PREFIX=/www/mysql/mysql \
-DMYSQL_DATADIR=/www/mysql/data \
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST=/usr/local/boost \
-DEXTRA_CHARSETS=all
make -j `grep processor /proc/cpuinfo | wc -l` (1个小时左右)
make install
如果报错
c++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See http://bugzilla.redhat.com/bugzilla for instructions. make[2]: * [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 4 make[1]: * [sql/CMakeFiles/sql.dir/all] Error 2 make: * [all] Error 2
说明内存不足,暂时可以把硬盘当内存使用
dd if=/dev/zero of=/swapfile bs=1M count=2048 mkswap /swapfile swapon /swapfile
编译完成之后
swapoff /swapfile rm /swapfile
5.初始化系统数据库
打开/etc/my.cnf ,添加
[client] default-character-set = utf8 [mysqld] character_set_server=utf8
./bin/mysqld --initialize-insecure --user=mysql --basedir=/www/mysql/mysql --datadir=/www/mysql/data --explicit_defaults_for_timestamp
./bin/mysql_ssl_rsa_setup将数据目录的权限赋给mysql用户
chown -R root /www/mysqlchown -R mysql /www/mysql/data
如果报错mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'. mkdir /var/log/mariadb touch /var/log/mariadb/mariadb.log chown -R mysql:mysql /var/log/mariadb/
设置数据库密码
./bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by 'root' with grant option;"
./bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by 'root' with grant option;"
6.配置系统服务,添加环境变量
cp support-files/mysql.server /etc/init.d/mysqld
shell> chkconfig --add mysqld # 添加到系统服务
chkconfig mysqld on # 开机启动
vim /etc/profile
export PATH=/www/mysql/mysql/bin:$PATH
source /etc/profile