一、下载以及准备
mysql 下载:
mysql地址
.
两个文件都要下载。
#以下环境为centos7为例安装,其他的Linux需根据自身的命令安装
#安装cmake
yum install cmake –y
#ssl开发环境 有的可不装
yum install openssl-devel
yum install ncurses-devel
yum install gcc gcc-c++
#以上的环境安装不唯一 请根据预编译中的报错在确定您缺少什么环境
#创建组
groupadd mysql
#创建用户
useradd -r -g mysql -s /bin/false mysql (-r:系统用户,-g:组,-s:指定shell)
二、编译安装
#预编译
#如果cmake失败 请 rm -rf CMakeCache.txt 失败请谷歌,不同环境报错不同
cmake . \
-DWITH_BOOST=boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
参数收集:
# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装路径
# -DMYSQL_DATADIR=/usr/local/mysql/data \ #数据文件存放位置
# -DSYSCONFDIR=/etc \ #my.cnf路径
# -DWITH_MYISAM_STORAGE_ENGINE=1 \ #支持MyIASM引擎
# -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #支持InnoDB引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1 \ #支持Memory引擎
# -DWITH_READLINE=1 \ #快捷键功能(我没用过)
# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ #连接数据库socket路径
# -DMYSQL_TCP_PORT=3306 \ #端口
# -DENABLED_LOCAL_INFILE=1 \ #允许从本地导入数据
# -DWITH_PARTITION_STORAGE_ENGINE=1 \ #安装支持数据库分区
# -DEXTRA_CHARSETS=all \ #安装所有的字符集
# -DDEFAULT_CHARSET=utf8 \ #默认字符
#编译安装
make -j `grep processor /proc/cpuinfo | wc -l`
# -j参数表示根据CPU核数指定编译时的线程数,可以加快编译速度。默认为1个线程编译,经测试单核CPU,1G的内存,编译完需要将近1个小时。
make install
三、初始化启动
cd /usr/local/mysql
mkdir mysql-files
chown -R mysql.mysql /usr/local/mysql
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#------------------------------------------------------------
#可能会报错 报错
2020-12-15T07:01:35.256967Z 0 [ERROR] COLLATION 'utf8mb4_general_ci' is not valid for CHARACTER SET 'latin1'
2020-12-15T07:01:35.256992Z 0 [ERROR] Aborting
#字符集问题
#在/etc/my.cnf #添加
[client]
default-character-set = utf8
[mysqld]
character_set_server = utf8
#-----------------------------------------------------------
#初始化成功后 会出现冒号后面时临时密码
# A temporary password is generated for root@localhost: o4Wdh?MjtLXN
/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
#最终我的my.cnf 文件
[root@mysql1 mysql] vim /etc/my.cnf
[client]
default-character-set = utf8
[mysqld]
character_set_server = utf8
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mysql.log
pid-file=/var/run/mysql.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
开机启动
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start #启动
#报错
Starting MySQL.2020-12-15T07:14:37.450082Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
#我是因为没有文件夹
mkdir -p /var/lib/mysql
#在启动
service mysqld start
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
#修改密码 中间看似乱码的东西时上面的临时密码 不改也行
mysqladmin -h127.0.0.1 -uroot -p'o4Wdh?MjtLXN' password '123456'
#登陆
mysql -uroot -p123456
#后输入上面的临时密码
四、停止重启
#停止
service mysqld stop
#重启
service mysqld restart
版权声明:本文为KillerXie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。