MYSQL (一)安装方法

下载地址

CentOS 安装光盘
项目官方:https://downloads.mariadb.org/mariadb/repositories/
国内镜像:
https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/ https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/

常用命令

CentOS7默认只有mariadb CentOS6默认只有mysql

修改MySQL密码mysqladmin –uroot –pcentos password 'magedu'
root是帐号,centos是密码;mysql -u root -p centos
查看数据库:show databases
进入数据库: use mysql
查看数据库:select user
显示当前数据库的列表:show tables
查看表内容:SELECT User,Host,Password FROM user;  
描述这张表:desc user
数据库安全加固
运行脚本:mysql_secure_installation
设置数据库管理员root口令
禁止root远程登录
删除anomyous用户账号
删除test数据库

调用sql脚本

  • souce test.sql
  • \./data/test.sql
  • 不登录执行命令
    • mysql -uroot -pmagedu < /data/test.sql
    • cat /data/test.sql | mysql uroot -pmagedu
	#查看mysql版本
	mysql -v
	#修改提示符(提示避免误操作)
	#查看添加的提示符:mysql --print-defaults  -v
	/etc/my.cnf.d/mysql-clients.cnf

MYSQLadmin命令

mysqladmin –help    #查看帮助
mysqladmin -uroot -pcentos ping #查看mysql服务是否正常,如果正常提示mysqld is alive
mysqladmin -uroot –pcentos create testdb    #创建数据库testdb
mysqladmin -uroot -pcentos drop testdb  #删除数据库testdb
mysqladmin -uroot -pcentos flush-logs   #日志滚动,生成新文件/var/lib/mysql/ mariadb-bin.00000N
#MySQL改密码
mysqladmin –uroot –pcentos password 'magedu'

关闭数据库

#关闭数据库但mysqladmin命令无法开启
mysqladmin –uroot –pcentos shutdown
#关闭数据库
systemctl stop mariadb

#关闭网络连接,只侦听本地客户端

[centos]$ vim /etc/my.cnf
[mysqld]
skip-networking=1
#所有和服务器的交互都通过一个socket实现,socket的配置存放在/var/lib/mysql/mysql.sock) 可在/etc/my.cnf修改

MYSQL安装

yum安装

yum -y install mariadb-server

下载地址https://downloads.mariadb.org

在这里插入图片描述

通用二进制方式安装MYSQL

#下载地址:wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz

1.准备用户

#创建账号和id
groupadd -r -g 306 mysql 
useradd -r -g 306 -u 306 -d /data/mysql  mysql

2.准备数据目录,建议使用逻辑卷

 #可选做,后面的脚本mysql_install_db可自动生成此目录 mkdir 
 /data/mysql 
  #更改所有者所属组
  chown mysql:mysql  /data/mysql

2.1 创建一个30G分区并且创建逻辑卷

fdisk /dev/sda
p
n
+30G
t
6
8e
w
#需要安装工具(yum -y install lvm)
pvcreate  /dev/sda6
#创建卷组
vgcreate vg0 /dev/sda6
#加入卷组
lvcreat -n mysql -l 100%free vg0
#创建文件系统
mkfs.ext4 /dev/vg0/mysql
#为了持久保存UUID写到系统Vim /etc/fstab
#查找UUID  r!blkid /dev/vg0/mysql
#创建文件夹并且挂载
mkdir /data/mysql
mount -a

3.准备二进制程序

tar xf mariadb-VERSION-linux-x86_64.tar.gz -C /usr/local 
cd /usr/local 
ln -sv mariadb-VERSION mysql 
chown -R root:root /usr/local/mysql/

4 准备配置文件

cd /usr/local/mysql 
cp -b support-files/my-large.cnf    /etc/my.cnf 
vim /etc/my.cnf 
#mysql语句块中添加以下三个选项 
[mysqld] 
datadir = /data/mysql 
innodb_file_per_table = on #在mariadb5.5以上版的是默认值,可不加 skip_name_resolve = on    #禁止主机名解析,建议使用

5 创建数据库文件

cd /usr/local/mysql/ 
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql

[root@centos8 mysql]#ls /data/mysql/ -l 
total 110604 
-rw-rw---- 1 mysql mysql 12582912 Jun  1 16:44 ibdata1 
-rw-rw---- 1 mysql mysql 50331648 Jun  1 16:44 ib_logfile0 
-rw-rw---- 1 mysql mysql 50331648 Jun  1 16:44 ib_logfile1 
drwx------ 2 mysql mysql     4096 Jun  1 16:44 mysql 
drwx------ 2 mysql mysql     4096 Jun  1 16:44 perfor
drwx------ 2 mysql mysql     4096 Jun  1 16:44 test

6 准备服务脚本,并启动服务

cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld chkconfig --add mysqld 
service mysqld start 
#如果有对应的service 文件可以执行下面 
cp  support-files/systemd/mariadb.service/usr/lib/systemd/system/ 
systemctl  daemon-reload 
systemctl enable --now mariadb

7 PATH路径

echo ‘PATH=/user/local/mysql/bin:$PATH> /etc/profile.d/mysql.sh .    /etc/profile.d/mysql.sh

8 安全初始化

/user/local/mysql/bin/mysql_secure_installation

9.设置开机启动

vim /etc/rc.d/rc.local
#开机启动的文件路径写到脚本
/etc/init.d/mysql   start
chmod +x /etc/rc.d/rc.local

编译安装

1.安装相关依赖包

yum -y install bison bison-devel  zlib-devel libcurl-devel libarchive-devel  boost-devel  gcc  gcc-c++  cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel   

2.做准备用户和数据目录


useradd -r -s /sbin/nologin -d /data/mysql mysql

3.准备数据库目录

mkdir   /data/mysql 
chown  mysql.mysql  /data/mysql

编译选项:https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

4.下载并解压缩源码包

tar xvf   mariadb-10.2.18.tar.gz 

5.源码编译安装mariadb

cd mariadb-10.2.18/ 
cmake . \ 
-DCMAKE_INSTALL_PREFIX=/app/mysql \ -DMYSQL_DATADIR=/data/mysql/ \ -DSYSCONFDIR=/etc/  \ -DMYSQL_USER=mysql \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1  \ -DWITHOUT_MROONGA_STORAGE_ENGINE=1 \ -DWITH_DEBUG=0 \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_LIBWRAP=0 \ -DENABLED_LOCAL_INFILE=1  \ -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci make && make install 

提示:如果出错,执行rm -f CMakeCache.txt
6.准备环境变量

echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh .     /etc/profile.d/mysql.sh

7.生成数据库文件

cd   /app/mysql/ 
scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql

8.准备配置文件

cp  /app/mysql/support-files/my-huge.cnf   /etc/my.cnf

9.准备启动脚本,并启动服务

cp /app/mysql/support-files/mysql.server  /etc/init.d/mysqld chkconfig --add mysqld 
service mysqld start

10.安全初始化

mysql_secure_installation

实战案例:一键安装mysql-5.6二进制包的脚本

#!/bin/bash 
#mysql-install.sh 
DIR=`pwd` 
NAME="mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz" 
FULL_NAME=${DIR}/${NAME} 
DATA_DIR="/data/mysql"
yum install libaio perl-Data-Dumper  vim gcc gcc-c++ wget autoconf  net-tools lrzsz   -y 
yum install curl policycoreutils openssh-server openssh-clients postfix -y

if [ -f ${FULL_NAME} ];then
  echo "安装文件存在" 
else
  echo "安装文件不存在"
  exit 3 
fi
if [ -h /usr/local/mysql ];then
  echo "Mysql 已经安装"
  exit 3 
else
    tar xvf ${FULL_NAME}   -C /usr/local/src
    ln -sv /usr/local/src/mysql-5.6.34-linux-glibc2.5-x86_64  /usr/local/mysql
    if id  mysql;then
          echo "mysql 用户已经存在,跳过创建用户过程"  
    else 
        useradd  -r   -s /sbin/nologin  mysql    
     fi

    if  id  mysql;then
        chown  -R mysql.mysql  /usr/local/mysql/* 
        if [ ! -d  /data/mysql ];then
            mkdir -pv /data/mysql && chown  -R mysql.mysql  /data   -R
            /usr/local/mysql/scripts/mysql_install_db  --user=mysql -datadir=/data/mysql  --basedir=/usr/local/mysql/   
            cp  /usr/local/src/mysql-5.6.34-linux-glibc2.5-x86_64/supportfiles/mysql.server /etc/init.d/mysqld         
            chmod a+x /etc/init.d/mysqld
            cp ${DIR}/my.cnf   /etc/my.cnf
            ln -sv /usr/local/mysql/bin/mysql  /usr/bin/mysql
               /etc/init.d/mysqld start         
            chkconfig --add mysqld
        else
                  echo "MySQL数据目录已经存在,"  
            exit 3
          fi          
    fi 
fi

#my.cnf 
[mysqld] 
socket=/var/lib/mysql/mysql.sock
user=mysql 
symbolic-links=0 
datadir=/data/mysql 
innodb_file_per_table=1

[client] 
port=3306 
socket=/var/lib/mysql/mysql.sock

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/tmp/mysql.pid

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值