(1)下载
下载的安装包:mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar
解压产生如下安装包
MySQL-MySQL - 你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。
MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器。
MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包。
MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL。
MySQL-bench - MySQL数据库服务器的基准和性能测试工具。
备注:mysql的几种包的区别
(1)环境配置
1)检查本机是否有安装mysql数据库
# 查看是否已安装
rpm -qa |grep -i mysql #其它版本
rpm -qa |grep -i mariadb #centos7 RHEL7默认系统自带的
# 提示:不同的版本默认安装的数据库不一样,centos7会自带一个mariadb!
2)卸载默认的数据库
# (1)尝试清理掉mariadb包--->rpm -e 加上包名,把mariadb包清掉
rpm -e mariadb-libs-5.5.56-2.el7.x86_64
###以看到用rpm删除会失败,提示有依赖关系的软件需要安装###
# (2)如果(1)不能卸载,就加上参数强制卸载
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
# 说明:删除的是安装的mysql的组件和安装过程中生成的相关文件,并没有删除rpm的安装包(也不需要)
补充:卸载的时候最好备份!
原因:mariadb是从mysql来的,是它的一个分支,可能会引起冲突,需要清理掉!
思考:为什么不用yum源安装
原因:用yum直接安装你的话,用的mariadb的yum源,它跟mysql官方正式版不太一样,是一个分支,我们要安装官方正式版,就需要清掉mariadb,然后手动安装自己下载的官方正式版mysql!
(2)正式安装
说明:由于是rpm包安装需要解决依赖关系并且安装顺序也特别重要!
1)安装依赖库
yum -y install cmake gcc gcc-c++ bison ncurses ncurses-devel
2)安装顺序
(1)rpm -ivh mysql-community-common*
(2)mysql-community-libs #mysql库文件头文件
(3)mysql-community-libs-compat #mysql库文件头文件
(4)mysql-community-client
(5)mysql-community-server
(6)
安装过程相关参数的说明:
ivh中, i-install安装;v-verbose进度条;h-hash哈希校验
说明:在安装的过程中,可能会出错,没有正确解决依赖,可以通过安装相应的库函数即可!
补充:这里必须多安装一个否则发送邮件会出错!
(3)安装成功后的测试
说明:对于Mysql 5.7.6以后的5.7系列版本,Mysql使用mysqld --initialize或mysqld --initialize-insecure命令来初始化数据库,后者可以不生成随机密码,但是Mysql安装过程中时默认使用的是前一个命令,这个命令会生成一个随机密码,该该密码保存在了Mysql的日志文件中!
对比:MySQL5.7.6之前的版本中默认是没有密码的,登录后直接回车就可以进入数据库,进而进行设置密码等操作!
1)需求1:寻找mysql的随机密码
从mysql的配置文件中找mysql的日志记录文件!
cat /etc/my.cnf --->/var/log/mysqld.log
查找初始化密码
grep 'temporary password' /var/log/mysqld.log
########或者如下的方式########
cat /var/log/mysqld.log | grep password
说明:上面查找初始化密码是为了登陆mysql,然后修改密码!
2)其它方式修改密码
说明:安装完mysql-server会提示可以运行mysql_secure_installation
mysql_secure_installation:常规化安全设置,通过这几项的设置能够提高生产环境中mysql库的安全!
建议:生产环境中mysql安装这完成后一定要运行一次mysql_secure_installation,相关操作如下:
/usr/bin/mysql_secure_installation <--安装完mysql后执行自带的安全设置
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码进行确认!
Remove anonymous users? [Y/n] <– 是否删除匿名用户,生产环境建议删除,所以直接回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,根据自己的需求选择Y/n并回车,建议禁止
Remove test database and access to it? [Y/n] <– 是否删除test数据库和对test库的访问权限,直接回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,直接回车
备注:企业生产环境里面用的还是5.5或者5.6
原因:经过市场检验,性能稳定!
社区版:没有线成池,查询和插入的效率问题!
3)开启服务,并登陆!
#(1)看下mysql是否安装成功了,看到两个mysql的组件,就是安装成功了
rpm –qa |grep –I mysql
# (2)开启mysql服务,查看状态
systemctal start mysqld.service
# 看mysql服务是否开启
systemctal status mysqld.service
# (3)看是否有mysql进程
ps –ef|grep –i mysql
# (4)查看mysql的端口号-->3306
netstat -antlupe|grep mysqld
# (5)查看mysql.socket文件是否开启(locate mysql.sock-->查询路径)
/var/lib/mysql/mysql.sock
mysql -uroot -p #进行登陆--->show database; --->看到如下的几个初始化的数据库
mysql自带一些系统库:
information_schema --->存一些统计数据
performance_schema --->存一些状态数据
mysql --->存的数据用于监控、权限、账号等
test --->测试库,用于做测试用的
(3)mysql配置文件和相关配置问题
3.1)mysql和mysqladmin的使用
MySQL服务 - 客户端工具mysql及mysqladmin使用介绍
3.2)mysqldump的使用
skip-grant-tables #表示忽略密码(登陆时不校验密码,可以用来修改密码)
skip-networking #禁止网络连接,作为内部测试用,保证安全!
理解透彻my.cnf里的参数是永恒的话题;只有理解透彻了参数设置,才能在某些方面对数据库进行调优
注意事项:关闭防火墙和selinux