经典的编译安装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,操作更方便哦