MySQL的安装

158 阅读2分钟

一、编译安装MySQL数据库

1、安装环境包

确认安装 gcc 、 gcc-c++ 、make、cmake
ncurses-devel、(字符终端屏幕控制基本库)
bison、(语法分析器)
libaio-devel (支持同步I/O)的软件包

yum -y install gcc gcc-c++ make ncurses ncurses-devel bison cmake libaio-devel

2、添 加mysql用户并加入到mysql组

useradd  -s /sbin/nologin mysql
mkdir -p /usr/local/mysql

3、将所需安装包放到/opt目录下并解压

cd /opt
tar zxvf mysql-5.5.24.tar.gz

4、配置软件模块

cd /opt/mysql-5.5.24.tar.gz
 
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/home/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306         

指定安装路径
指定家目录 sock 数据库连接文件
指定字符集
指定字符编码
扩展性的字符集 支持其他的字符集
开启各种功能的存储引擎机
存储引擎机
存储引擎机
支持readline程序平台 读取数据按行读取,一行是一个对象
本地写入文件,方便导入导出
数据库的家目录 数据库存放的路径
指定管理用户和端口号

5、编译及安装

make && make install 
  
------如果报错,清空缓存文件-如果正常可忽略-------
find -name CMakeCache.txt
rm -f ./CMakeCache.txt     

6、更改mysql安装目录和配置文件的属主属组

chown -R mysql.mysql /usr/local/mysql 
chown mysql:mysql /etc/my.cnf  

7、设置路径环境变量

export PATH=$PATH:/usr/local/mysql/bin/   *开机时刷新*\         
 
或者可选择vi /etc/profile 在最后一行加入后 运行source /etc/profile

8、添加服务

cp support-files/my-medium.cnf /etc/my.cnf                 
或
cp support-files/my-default.cnf /etc/my.cnf
 
cp support-files/mysql.server /etc/init.d/mysqld             
 
chmod 755 /etc/init.d/mysqld                            
chkconfig --add /etc/init.d/mysqld                     
chkconfig mysqld --level 35 on         

9、初始化数据库

/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql

10、创建软链接并修改配置文件

ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock           /*直接建立软连接*/
 
vi /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/home/mysql
 
service mysqld start
netstat -natp | grep 3306

11、修改mysql 的登录密码并授权远程登录

mysqladmin -u root -p password "abc123"     #给root账号设置密码为abc123,提示输入的是原始密码(为空)  
mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
#授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限
  
show databases;         #查看当前已有的数据库

按照步骤安装即可,具体可参照之前的文章(在此就不演示了): # LNMP搭建

二、MySQL数据库自动补全命令的三种方式

1、方式一:临时使用自动补全功能

mysql -u root -p --auto-rehash

2、方式二:永久使用自动补全功能

vi /etc/my.cnf
 
[mysql]
auto-rehash

3、方法三:使用软件mycli实现自动补全功能

3.1 安装相关依赖软件(需要配置yum官方或者阿里源进行安装)

yum -y install epel-release
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc

3.2 下载python安装包(自己下载过可以忽略此步骤)

wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz

3.3 创建目录,并添加配置

mkdir ~/.pip/
 
cat > ~/.pip/pip.conf <<EOF
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
 
[install]
trusted-host=mirrors.aliyun.com
EOF

3.4 安装相关依赖软件,解压python软件包并进行编译安装

yum -y install libffi-devel zlib* python-devel openssl-devel
tar -zxvf Python-3.9.0.tgz
cd Python-3.9.0/
./configure --prefix=/usr/local/python --with-ssl
make && make install

3.5 优化路径,安装pip3

yum -y install libffi-devel zlib* python-devel openssl-devel
tar -zxvf Python-3.9.0.tgz
cd Python-3.9.0/
./configure --prefix=/usr/local/python --with-ssl
make && make install

3.6 登录测试

mycli -u root -p <密码>

三、一键部署MySQL脚本

cd /opt       #将软件包拉入/opt下

vim mysql.sh  #需要用source运行
#!/bin/bash

#关闭防火墙和selinux服务的函数
stopd (){
systemctl  stop firewalld
if [ $? -eq 0 ];then
echo "防火墙关闭成功!"
fi
setenforce 0
}

#进行yum本地源仓库搭建的函数
cangku (){
mount /dev/sr0 /mnt &>/dev/null
cd /etc/yum.repos.d
mkdir repo.bak
mv *.repo ./repo.bak
echo "
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1 ">local.repo
yum clean all && yum makecache &>/dev/null
if [ $? -eq 0 ];then
echo "元数据已建立!"
fi
}
#msql编译器安装函数
editor (){
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake &>/dev/null

if [ $? -eq 0 ];then
echo "编译器安装完毕!"
fi
}
#软件模块配置函数
module (){
cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz 
mv boost_1_59_0 /usr/local/boost
cd /opt/mysql-5.7.20
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

local cpunums=$1
make -j $cpunums  
make install 
}
#创建mysql用户及其修改配置文件

mysqlset(){
useradd -M -s /sbin/nologin  mysql
echo "
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[mysql]
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

" >/etc/my.cnf

}
#更改mysql安装目录和配置文件的属主属组和设置路径环境变量
mysqlurl(){
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profile
}
#初始化数据库
initmysql(){
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
}
#添加mysql服务到系统服务中
addmysql(){
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/	
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
} 
#对mysql的登录密码进行修改且授权远程登录
userpasswd(){
mysqladmin -u root password "abc123"
mysql -u root -pabc123 -e "grant all privileges on *.* to 'root'@'%' identified by 'abc123';"
}
###########################main#########################
echo "本脚本针对 mysql-boost-5.7.20.tar.gz 软件包,请将软件包放置在/opt 目录下	"
ls /opt
read -p "请根据该列表检查自己是否已将软件包安防到/opt目录下。选项:(1.已经安放,进行进行脚本运行。2.终止脚本):"    option
if [  $option -eq 1    ];then
  stopd
  cangku
  editor
  read -p "请根据自身虚拟机的性能情况选择调用编译的cpu核心数(建议至少两颗):"   CPU
  module $CPU
  mysqlset
  mysqlurl
  initmysql
  addmysql
  userpasswd
else
   exit  
fi