MySQL的安装

1、直接使用官方的yum源安装

/etc/yum.repos.d/mysql.repo
[root@localhost yum.repos.d]# cat  mysql.repo 
[mysql5.7-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[root@localhost yum.repos.d]# yum install mysql-server -y

2、rpm安装

下载rpm包,然后安装

1.上传文件到linux里 (xftp lrzsz—rz)

2.解压 tar xf mysql*

3.使用yum命令安装 yum install mysql-community-*

4.启动mysql服务 service mysqld start

5.查看进程和端口号 ps aux|grep mysqld lsof -i:3306 netstat -anplut

6.登录
查看临时密码 /var/log/mysql.log
修改临时密码
alter user root@localhost identified by ‘Xl@123456’;(大小写、特殊符号、数字,长度)
7.查看数据库里有哪些库
show databases;

rpm和yum安装方式的特点:安装快速,但是不能修改很多的东西,例如:路径,功能不能定制

3、编译安装

在企业使用非常多
	可以指定安装路径
	可以定制功能等好处
		https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
		https://dev.mysql.com/doc/refman/5.7/en

步骤

安装
	selinux
		关闭
	firewalld
		关闭
	chkconfig mysqld on
		开机启动
	重启验证
		reboot
		init 6	
     一键安装和配置好MySQL

方法v1

#!/bin/bash

#提前条件是先上传MySQL的源码包文件mysql-boost-5.7.26.tar.gz
#第1步:解压源码包
tar  xf  mysql-boost-5.7.26.tar.gz
#第2步:安装需要的编译软件
yum  install cmake ncurses-devel gcc  gcc-c++  vim  lsof  -y

#第3步:新建mysql用户
useradd -r -s /sbin/nologin mysql

#第4步:新建数据目录
mkdir  -p  /data/mysql

#第5步:进入解压后的文件夹,使用cmake开始制定安装的参数
cd  mysql-5.7.26
cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql  -DSYSCONFDIR=/etc  -DMYSQL_USER=mysql  -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_BOOST=boost

#第6步:开始编译  机器的配置建议4G和4个cpu核心
make  -j 4
#第7步:编译安装
make  install
#第8步:备份原来的/etc/my.cnf文件,然后清空这个文件
cp /etc/my.cnf /root
>/etc/my.cnf

#第9步:进入安装好的mysql的目录,开始初始化操作,并且把临时密码保存到一个文件里,方便后面登录使用
cd  /usr/local/mysql/bin
./mysqld --initialize  --user=mysql --basedir=/usr/local/mysql/  --datadir=/data/mysql  &>/root/temp_password.txt

#第10步:就是拷贝mysql和mysqld的程序文件到指定的目录
cp mysql /usr/bin/
cp  ../support-files/mysql.server  /etc/init.d/mysqld

#第11步:关闭防火墙和selinux
service firewalld stop
systemctl  disable firewalld
#临时关闭selinux
setenforce 0
#永久修改selinux配置文件里的内容
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config

#第12步:设置MySQL开机启动
chkconfig mysqld on

#第13步:启动MySQL
service  mysqld  start

#第14步:登录进去MySQL并且重新设置密码

方法v3

#!/bin/bash

#提前条件是先上传MySQL的源码包文件mysql-boost-5.7.26.tar.gz
#让机器去ftp服务器上下载mysql-boost-5.7.26.tar.gz
#192.168.0.41是我们提供的ftp服务器的ip地址
curl  -O ftp://192.168.0.41/mysql-boost-5.7.26.tar.gz

#第1步:解压源码包
tar  xf  mysql-boost-5.7.26.tar.gz
echo  "############tarball  is decompressed successfully#############"
#第2步:安装需要的编译软件
yum  install cmake ncurses-devel gcc  gcc-c++  vim  lsof  -y


echo "##############install all softwares ok##################"
#第3步:新建mysql用户
useradd -r -s /sbin/nologin mysql
echo '###### add user  mysql ok######'
#第4步:新建数据目录
mkdir  -p  /data/mysql
echo '###### mkdir   /data/mysql ok######'
#第5步:进入解压后的文件夹,使用cmake开始制定安装的参数
echo '###### start to config mysql ######'
cd  mysql-5.7.26
cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql  -DSYSCONFDIR=/etc  -DMYSQL_USER=mysql  -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_BOOST=boost

#第6步:开始编译  机器的配置建议4G和4个cpu核心
echo '###### start to make mysql ,may be need 30 minutes ,please wait a moment######'
make  -j 4
#第7步:编译安装
echo '###### start to install mysql ######'
make  install
#第8步:备份原来的/etc/my.cnf文件,然后清空这个文件
cp /etc/my.cnf /root
>/etc/my.cnf

#第9步:进入安装好的mysql的目录,开始初始化操作,并且把临时密码保存到一个文件里,方便后面登录使用
cd  /usr/local/mysql/bin
./mysqld --initialize  --user=mysql --basedir=/usr/local/mysql/  --datadir=/data/mysql  &>/root/temp_password.txt

#第10步:就是拷贝mysql和mysqld的程序文件到指定的目录
cp mysql /usr/bin/
cp  ../support-files/mysql.server  /etc/init.d/mysqld

#第11步:关闭防火墙和selinux
service firewalld stop
systemctl  disable firewalld
#临时关闭selinux
setenforce 0
#永久修改selinux配置文件里的内容
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config

#第12步:设置MySQL开机启动
chkconfig mysqld on

#第13步:启动MySQL
service  mysqld  start

#第14步:登录进去MySQL并且重新设置密码Sanchuang123#
#从保存的临时密码文件里,截取出临时密码,赋值给一个变量temp_pwd
temp_pwd=$(cat /root/temp_password.txt |tail -1|awk '{print $11}')
#给MySQL设置密码为Sanchuang123#
mysql -uroot -p$temp_pwd  --connect-expired-password -e "set password='Sanchuang123#'"
echo '###### congratulation! your mysql has be installed successfully ######'

方法v4

#!/bin/bash
#description:一键编译安装MySQL 5.7.26
#author: xu
#time:2021-8-30


#下载mysql的5.7.26的源码包到新的机器,开始解压
[ -d /mysql ] ||mkdir /mysql
cd /mysql
curl -O ftp://192.168.0.163/download/mysql-boost-5.7.26.tar.gz

#解压源码包,进入目录
tar xf mysql-boost-5.7.26.tar.gz

cd mysql-5.7.26/

#解决依赖关系包
yum  install cmake ncurses-devel gcc  gcc-c++  lsof -y 

#新建mysql用户
useradd -r -s /sbin/nologin mysql

#新建存放数据的目录
mkdir  -p  /data/mysql

#编译前的配置工作
cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql  -DSYSCONFDIR=/etc  -DMYSQL_USER=mysql  -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_BOOST=boost

#编译
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 


#生成配置文件/etc/my.cnf
cat  >/etc/my.cnf  <<EOF
[mysqld_safe]

[client]
socket=/data/mysql/mysql.sock

[mysqld]
socket=/data/mysql/mysql.sock
port = 3309
open_files_limit = 8192
innodb_buffer_pool_size = 512M

[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m  mysql>
EOF


#初始化数据库
cd /usr/local/mysql/bin
./mysqld --initialize  --user=mysql --basedir=/usr/local/mysql/  --datadir=/data/mysql  &>passwd.txt

  #获得临时密码
tem_passwd=$(cat passwd.txt |grep "temporary"|awk '{print $NF}')
  #$NF表示最后一个字段
  # abc=$(命令)  优先执行命令,然后将结果赋值给abc 

#复制mysql客户端命令和启动脚本到指定目录
cp mysql  /usr/bin  #复制mysql客户端命令到PATH变量路径里,方便后面使用
cp ../support-files/mysql.server  /etc/init.d/mysqld  #复制启动脚本
#将mysql的bin目录添加到PATH变量里
echo 'PATH=$PATH:/usr/local/mysql/bin' >>/root/.bashrc

#启动mysqld服务
service mysqld start

if lsof -i:3309   &>/dev/null
then
	echo "mysql is running"
else
	echo “warning, mysql is not running ”
	exit  #退出整个脚本,不执行后面的命令
fi

#登录重新设置初始密码为1234#

#初次修改密码需要使用--connect-expired-password 选项
mysql -uroot -p$tem_passwd --connect-expired-password   -e  "set password='1234#';"
mysql -uroot -pSanchuang1234#  -e  'show databases;' && echo "database is installed success"

mysql-5.7.29一键安装脚本

[root@mysql ~]# cat one_key_install_mysql.sh

#!/bin/bash

#author:xu
#time: 2020-8-12
####################################
#编译安装mysql 5.7.29
#os: centos7.8.2003 
####################################

#假定mysql的源码包已经上传到linux服务器里的当前目录下
#安装解决软件依赖关系的包
yum  install cmake ncurses-devel gcc  gcc-c++  vim  lsof bzip2 openssl-devel -y
#解压src的rpm包
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

经典的编译安装3步曲

	1.编译前的配置
		./configure或者是cmake
			    目的是生成一个叫做Makefile的文件
	2.编译
		make
		make -j  2
			启动2个进程去编译
				好处就是速度快些
	3.编译安装
		make  install
			本质是将编译好的二进制程序复制到指定的安装目录

出错的图

数据目录下有文件了,删除数据目录下的所有的文件数据目录下有文件了,删除数据目录下的所有的文件
请添加图片描述没有安装openssl-devel软件包
请添加图片描述
磁盘空间已满,删除一些不需要的文件,释放空间

请添加图片描述
数据目录没有授予权限,/etc/init.d/mysqld没有给予可执行权限,chmod +x /etc/init.d/mysqld

请添加图片描述检查/data/mysql这个目录的权限,mysql这个用户是否可写

修改密码

	mysql> set password='12345';
	mysql> alter user 'root'@'localhost'  identified by '1234';

编译安装和rpm方式安装的区别

买衣服
	定制
		编译安装
	专卖店
		rpm方式安装
编译安装太慢,但是可以修改很多的东西,例如:路径,功能定制

4、二进制版本的安装

优点:可以定制功能,安装速度快

安装脚本

[root@localhost ~]# cat onekey_install_mysql_binary.sh

#!/bin/bash
#解决软件的依赖关系
yum  install cmake ncurses-devel gcc  gcc-c++  vim  lsof bzip2 openssl-devel -y

#解压mysql二进制安装包
tar  xf  mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz

#移动mysql解压后的文件到/usr/local下改名叫mysql
mv mysql-5.7.33-linux-glibc2.12-x86_64 /usr/local/mysql

#新建组和用户 mysql
groupadd mysql
#mysql这个用户的shell 是/bin/false 属于mysql组
useradd -r -g mysql -s /bin/false mysql

#关闭firewalld防火墙服务,并且设置开机不要启动
service firewalld stop
systemctl  disable  firewalld

#临时关闭selinux
setenforce 0
#永久关闭selinux
sed -i '/^SELINUX=/ s/enforcing/disabled/'  /etc/selinux/config

#新建存放数据的目录
mkdir  /data/mysql -p
#修改/data/mysql目录的权限归mysql用户和mysql组所有,这样mysql用户可以对这个文件夹进行读写了
chown mysql:mysql /data/mysql/
#只是允许mysql这个用户和mysql组可以访问,其他人都不能访问
chmod 750 /data/mysql/

#进入/usr/local/mysql/bin目录
cd /usr/local/mysql/bin/

#初始化mysql
./mysqld  --initialize --user=mysql --basedir=/usr/local/mysql/  --datadir=/data/mysql  &>passwd.txt

#让mysql支持ssl方式登录的设置
./mysql_ssl_rsa_setup --datadir=/data/mysql/

#获得临时密码
tem_passwd=$(cat passwd.txt |grep "temporary"|awk '{print $NF}')
  #$NF表示最后一个字段
  # abc=$(命令)  优先执行命令,然后将结果赋值给abc

# 修改PATH变量,加入mysql bin目录的路径
#临时修改PATH变量的值
export PATH=/usr/local/mysql/bin/:$PATH
#重新启动linux系统后也生效,永久修改
echo  'PATH=/usr/local/mysql/bin:$PATH' >>/root/.bashrc

#复制support-files里的mysql.server文件到/etc/init.d/目录下叫mysqld
cp  ../support-files/mysql.server   /etc/init.d/mysqld

#修改/etc/init.d/mysqld脚本文件里的datadir目录的值
sed  -i '70c  datadir=/data/mysql'  /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
character-set-server=utf8

[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m  mysql>
EOF

#启动mysqld进程
service mysqld start

#将mysqld添加到linux系统里服务管理名单里
/sbin/chkconfig --add mysqld
#设置mysqld服务开机启动
/sbin/chkconfig mysqld on

#初次修改密码需要使用--connect-expired-password 选项
#-e 后面接的表示是在mysql里需要执行命令  execute 执行
#set password='123#';  修改root用户的密码为123#
mysql -uroot -p$tem_passwd --connect-expired-password   -e  "set password='123#';"


#检验上一步修改密码是否成功,如果有输出能看到mysql里的数据库,说明成功。
mysql -uroot -p'123#'  -e "show databases;"

卸载脚本

[root@localhost ~]# cat uninstall_binary_mysql.sh
#!/bin/bash
#停止mysqld服务
service mysqld stop
#删除用户
userdel -r  mysql

#删除数据目录和base目录
rm -rf /usr/local/mysql
rm -rf /data/
rm -rf /etc/init.d/mysqld

升级问题

	重新安装一遍,使用新的版本

如何判断MySQL服务是否运行?

	看端口
		lsof  -i:3306
		netstat  -anplut|grep mysqld
	看进程
		ps  aux|grep mysqld
	登录
		mysql -uroot -p'Sanchuang123#'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值