在Linux安装Mysql操作及shell脚本

安装完Linux操作系统后搭建基本环境,并且拍摄快照
1.关闭iptables和selinux
vim /etc/selinux/config 改为SELINUX=disabled
chkconfig iptables off
2.配置好本地yum源
3.下载最新软件

软件包类型:
1.rpm包
大,安装比较简单–yum localinstall–时间比较长
缺点:软件目录等都是提前固定好的,首次安装不可修改
2.源代码
1.自行编译
小-时间耗费在自行编译过程上-很多配置在编译的时候自行指定-灵活度较高
2.免编译-二进制
比较大-时间耗费在解压上-解压完成简单配置后直接使用

软件构成:
1.bin:命令
2.lib:库目录
报错:*.so文件找不到–没有识别库目录位置,指定库文件目录
3.share:错误输出 /usr/local/mysql/share/english/errmsg.sys
1.错误编码
2.错误解释
当输入命令没有任何错误解释输出–没有找到错误文件的位置,通过自带参数lc_messages_dir指定
4.support-files:便捷的启动脚本
如果想以service的方式启动,关闭mysql,找到mysql.server脚本添加到/etc/init.d/mysqld
5.datadir:
rpm固定数据目录:datadir=/var/lib/mysql
源码
1.自行编译:cmake --prefix= 习惯/usr/local/mysql
2.二进制:取决于解压位置
6.配置文件位置:/etc/my.cnf 默认查找四个配置文件,检查顺序:由前向后依次检查,会由后往前一次覆盖,可以只写着一个配置文件

    [mysqld]            
    #1.服务端配置,影响着客户机和本身客户机如何去连接服务器端,可以在datadir目录下配置所有信息 2.客户端也有相应的参数-影响会话相关参数
    basedir=            #软件所在位置
    datadir=/mydata     #数据存放所在位置
    server-id=          #标志server的编号
    port=               #对外提供的服务端口,影响客户端连接
    socket=/tmp/mysql.sock  
                        # mysql启动后生成的套接字文件,影响server端自身的通过socket文件连接mysql   
    user=mysql          # 表示什么用户启动mysql
    symbolic-links=0
    log-error=/var/log/mysqld.log    #mysql启动运行的错误文件
    pid-file=/mydata/mysqld.pid      #软件启动,生成pid文件的名称

rpm包安装步骤:
1.tar -xf mysql-5.7.14-1.el6.x86_64.rpm-bundle.tar -C mysql 将bundle包解压到目录
2.yum localinstall ./mysql-community-*.rpm -y 安装所有rpm包
3.service mysqld start
第一次启动的时候初始化数据,然后再启动数据库
初始化目的:生成server自身运行需要的文件
文件包含:mysql的系统库(performance_schema、information_schema、sys、mysql)、ib_buffer_pool、ibdata1
4.mysql -uroot -p 不能直接登录
去 vim /var/log/mysqld.log 找临时密码–查找temporary

二进制安装步骤:
1.创建目录 mkdir -p /usr/local/mysql/data
2.解压 tar -xf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz -C /usr/local/src
3.将整个文件的内容全部拷贝到当前目录下
4.建立属组、属主
5.修改配置文件 #多个实例配置文件要改名字
[mysqld]
basedir=/usr/local/mysql #目录要先创建
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
port=3307
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/usr/local/mysql/data/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
6.初始化数据库
/usr/local/mysql/bin/mysqld --initialize --datadir=
7.修改权限 chown -R mysql:mysql /usr/local/mysql/data

----------------------------------以上步骤是启动Mysql的基本工作
8.启动数据库
/usr/local/mysql/bin/mysqld_safe --defaults-file=
9.关闭数据库
service mysqld stop
mysqladmin -uroot -p -h(登录机器的IP地址) -p shutdown (前提要知道密码)

注意:在步骤8启动完成之后,不要立即登录,去数据目录下看启动是否成功
启动成功的标志
1.mysql.sock
2.pid文件
3.port: netstat -anutlp | grep 330

注意:对于源代码的二进制文件来说:没有给定初始密码,需要以跳过授权表的方式启动
未知密码时登录Mysql步骤:
1.关闭不知道密码的数据库
2.修改配置文件/etc/my.cnf,注释密码策略参数(#validate_password=on)
3…以跳过授权表的方式来启动数据库 mysqld_safe --defaults-file=配置文件 --skip-grant-tables &
4.进入数据库,刷新权限,修改密码
mysql -uroot -p -S(socket文件位置) -P(端口)
flush privileges;
alter user ‘root’@‘localhost’ identified by ‘123’;

shell脚本:

`脚本名:rpm_tar_test.sh

#!/bin/bash
#一键式安装rpm、二进制mysql 
echo -e "\t菜单"
echo
echo -e "\t1.rpm包安装"
echo -e "\t2.免编译安装"
echo
read -p "请输入你的选择:" choice

#第一次安装时
if ((choice==1))
then
    cd /usr/local/src
    tar -xf mysql-5.7.14-1.el6.x86_64.rpm-bundle.tar >/dev/null
    yum localinstall mysql-community-*.rpm -y &>/dev/null
	service mysqld start
	echo
	echo "已经启动mysql,去/var/log/mysqld.log文件下查找临时密码登录Mysql"
elif ((choice==2))
then
	source tar.sh
fi

脚本名:tar.sh

#!/bin/bash

#第一次安装时
mkdir -p /usr/local/mysql/data
cd /usr/local/src
tar -xf mysql-5.7.15-linux-glibc2.5-x86_64.tar 
tar -xf mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz -C /usr/local/mysql
cd /usr/local/mysql
mv mysql-5.7.15-linux-glibc2.5-x86_64/* ./
rm -rf mysql-5.7.15-linux-glibc2.5-x86_64
cat << end > /etc/my_tar.cnf
[mysqld]
basedir=/usr/local/mysql     #目录要先创建
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
log-error=/usr/local/mysql/data/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
end
groupadd mysql 2>/dev/null 
useradd mysql -g mysql 2>/dev/null 
/usr/local/mysql/bin/mysqld --initialize --datadir=/usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql/data
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my_tar.cnf --skip-grant-tables &
echo
echo "执行/usr/local/mysql/bin/mysql -uroot -p -S/usr/local/mysql/data/mysql.sock -P3307"

你可能感兴趣的:(MYSQL开发学习)