经典的编译安装3步曲
- 1.编译前的配置 ./configure或者是cmake
目的是生成一个叫做Makefile的文件 - 2.编译 make make -j 2
启动2个进程去编译,提高速度 - 3.编译安装 make install
-本质是将编译好的二进制程序复制到指定的安装目录
一键安装脚本:
[root@mysql-compile ~]# cat onekey_compile_install_mysql.sh
#!/bin/bash
#author:cali
#time: 2020-10-6
#company: sanchuang
##############################
#编译安装mysql 5.7.29
#os: centos7.8.2003
####################################
#新建用户mysql
useradd -s /sbin/nologin mysql
#解决软件的依赖关系
yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip2 openssl-devel -y
rpm -ivh mysql-community-5.7.29-1.el7.src.rpm
#进入/root/rpmbuild目录
cd /root/rpmbuild/SOURCES
#解压真正的源码包
tar xf mysql-5.7.29.tar.gz
tar xf boost_1_59_0.tar.bz2
#将boost包移动到mysql解压的包里
mv boost_1_59_0 mysql-5.7.29
cd mysql-5.7.29
#编译前的配置
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/sc_mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost_1_59_0
##编译和编译安装
make -j 2 && make install
#关闭防火墙firewalld
service firewalld stop
systemctl disable firewalld
#关闭selinux
#临时关闭selinux
#永久关闭selinux
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
#新建数据目录,并且授权和设置权限
mkdir /data/mysql -p
chown mysql:mysql /data/mysql/
chmod 750 /data/mysql/
#mysql的初始化操作
cd /usr/local/sc_mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/sc_mysql/ --datadir=/data/mysql &>passwd.txt
#获得临时密码
tem_passwd=$(cat passwd.txt |grep "temporary"|awk '{print $NF}')
#$NF表示最后一个字段
# abc=$(命令) 优先执行命令,然后将结果赋值给abc
#修改环境变量,添加我们编译安装的MySQL的可执行命令的路径
echo "PATH=$PATH:/usr/local/sc_mysql/bin" >>/root/.bashrc
PATH=$PATH:/usr/local/sc_mysql/bin
#复制mysql提供的启动mysqld服务的脚本到/etc/init.d目录下-->复制mysqld的启动脚本
cp ../support-files/mysql.server /etc/init.d/mysqld
#生成/etc/my.cnf配置文件
cat >/etc/my.cnf <<EOF
[mysqld_safe]
[client]
socket=/data/mysql/mysql.sock
[mysqld]
socket=/data/mysql/mysql.sock
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m mysql>
EOF
#启动mysqld服务
service mysqld start
#设置开机启动MySQL
chkconfig --add mysqld
#登录重新设置初始密码为Sanchuang123#
#初次修改密码需要使用--connect-expired-password 选项
mysql -uroot -p$tem_passwd --connect-expired-password -e "set password='Sanchuang123#';"
#验证密码是否设置成功
mysql -uroot -pSanchuang123# -e 'show databases;' && echo "database is installed success"
配置文件
[root@wudang-mysql-2 mysql]# cat /etc/my.cnf
[mysqld_safe]
#指定mysqld_safe进程的配置
#需要在mkdir /data/mysql 目录,然后使用命令chown mysql:mysql /data/mysql
#因为mysql进程需要往/data/mysql目录里写东西,需要权限,不然不能往目录下写日志
[client]
socket=/data/mysql/mysql.sock
#对客户端的配置
##socket是用来指定socket文件的路径,方便客户端连接找到
[mysqld]
log-error=/data/mysql/mysql.log
#这是指定mysql的日志文件的路径
socket=/data/mysql/mysql.sock
port = 3309
open_files_limit = 8192
innodb_buffer_pool_size = 256M
#mysqld是服务器端的配置
#port 指定端口号
#open_files_limit 指定mysql进程可以打开的文件数量,需要在操作系统里允许进程打开更多的文件
#使用ulimit -n 655350
#innodb_buffer_pool_size 指定缓存池的大小,提升数据性能的参数,最大可以达到物理内存的80%
#破解密码用
#user=mysql
#skip-grant-tables
#指定mysqld的socket文件所在的路径,/data/mysql目录一定要先存在。
#指定mysqld进程的配置
[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m mysql>
#对mysql命令执行的配置
#auto-rehash 支持tab键补齐
#prompt 登录进去后的提示符
[root@wudang-mysql-2 mysql]#
连接方式
socket文件一定要放在启动mysqld进程的用户具有写权限的目录里,推荐:数据目录或者/tmp
- 文件socket
1.文件socket
是实现一台电脑里的不同进程之间通信的文件
[root@wudang-mysql-2 mysql]# mysql -uroot -p'Sanchuang1234#' -S /data/mysql/mysql.sock
在my.cnf配置文件里打开下面的配置,在使用mysql客户端命令连接的时候,就不需要接-S指定socket文件的路径了
[client]
socket=/data/mysql/mysql.sock
- 网络socket
2.网络socket
是ip+port --》格式ip:port 192.168.0.163:3309
网络中通过ip地址找到对方
是实现不同的电脑之间的不同的进程之间的通信的
[root@mysql-2 ~]# mysql -h 192.168.0.163 -P3309 -ucali -p'Sanchuang1234#'
-h 指定主机名(ip) host
-P port 端口 (大写)
链接:https://pan.baidu.com/s/1CfyN07A5NX_B4DAagzUKqQ
提取码:xvbr
复制这段内容后打开百度网盘手机App,操作更方便哦