简要介绍
mysql是开源数据库,开源但不是免费的数据库,业务不是特别大,属于oracle公司(甲骨文)
oracle 是大型的数据库,银行,上市公司,证券等经常使用,贵,但是好用
互联网公司去IOE --> IBM(服务器) Oracle(数据库) EMC(存储设备)
mysql --> 瑞典AB Widenius卖给sun公司 --> sun公司被Oracle收购
mysql创始人 --> 继续开发了MariaDB
关系型数据库 mysql mariadb oracle postgreSQL..
非关系型数据库:redis MongoDB..
国产的数据库 TIDB 达梦数据库 人大金仓 南大通用 神舟通用...
安装 卸载 滚动升级
第一步,在官网下载文件。推荐社区版的5.7.*版本,因为更加的稳定,并不是说版本越新越好。
第二步,可分批操作或者直接运行下面的脚本
[root@localhost ~]# cat onekey_install_mysql_binary.sh
#!/bin/bash#解决软件的依赖关系
yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip2 openssl-devel ncurses-compat-libs -y#解压mysql二进制安装包(我们的是5.7.38版本)
tar xf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz#移动mysql解压后的文件到/usr/local下改名叫mysql
mv mysql-5.7.38-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为替换命令)
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 (会生成临时密码保存到passwd.txt文件中)
./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添加到linux系统里服务管理名单里
/sbin/chkconfig --add mysqld
#设置mysqld服务开机启动
/sbin/chkconfig mysqld on#启动mysqld进程
service mysqld start#初次修改密码需要使用--connect-expired-password 选项
#-e 后面接的表示是在mysql里需要执行命令 execute 执行
#set password='Sanchuang123#'; 修改root用户的密码为Sanchuang123#
mysql -uroot -p$tem_passwd --connect-expired-password -e "set password='123456';"
#检验上一步修改密码是否成功,如果有输出能看到mysql里的数据库,说明成功。
mysql -uroot -p'123456' -e "show databases;"
[root@web bin]# ulimit -n 1000000
[root@web bin]# echo "ulimit -n 1000000" >>/etc/rc.local
[root@web bin]# chmod +x /etc/rc.d/rc.local
卸载脚本
要明确数据库就是一个文件夹,删除数据库即删除文件夹。
卸载脚本
[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 rm -rf /etc/my.cnf
升级--在升级软件的过程中尽量保持业务的持续
1.安装新版的mysql
2.停止旧版的mysql
3.导出旧版本的mysql里的数据,导入到新的mysql里面
4.启用新的mysql。