MYSQL初识篇之安装
前言:
技术迭代至云时代开源化.....
mysql 版本
Alpha 版:Alpha 版一般只在开发公司内部运行,不对外公开。
Beta版:Beta 版一般是完成功能的开发和所有的测试工作之后的产品,不存在较大的功能或性能BUG。
RC版:RC版属于生产环境发布之前的一个小版本或称候选版,是根据beta版测试结果,收集到的bug 或缺陷之处等收集到的信息,进行修复和完善之后的一版产品
GA版:是软件产品正式发布的版本
mysql 的三条产品线
(1)、5.0.x.x-5.1.x.x (非主流了)
mysql 5.1是当前稳定(产品质量)发布系列,只针对漏洞修复重新发布,没有增加会影响稳定性的新功能
(2)、5.4.x.x-5.7.x.x
为了更好的整合MYSQL AB公司社区和第三方公司开打的新存储引擎,以及吸收新的实现算法等,从而更好的支持SMP 架构,提高性能而做了大量的代码重构。
(3)、6.0.x.x-8.0.x.x
为了更好的推广mysql cluster 版本,以及提高mysql cluster 的性能和稳定性,以及功能改进和增加
生产环境如何选择mysql 版本
1.选择开源的社区版的稳定GA版本
2.可以选择5.1 或5.5 互联网公司主流5.5,其次5.1和5.6
3.选择MySQL 数据库GA版本发布后6个月以上的GA版
4.选择前后几个月没有大的bug 修复的版本,而不是大量修复bug 的集中版本
5.最好向后较长时间没有更新发布的版本
6.要考虑开发人员开发程序使用的版本是否兼容你选择的版本
7.作为内部开发测试数据库环境,跑大概3-6个月的时间
mysql 的安装方式
1.rpm 安装mysql:mysql-client-community、mysql-devel-community
mysql-shared-community、mysql-server-community
其中,必须安装 server 和client软件包,对于另外两个则可视实际需要,但是建议一起安装。
2.yum 安装mysql:适合对数据库要求不太高的场合,例如并发不大,公司内部,企业内部的一些应用场景。
3.常规方式编译安装mysql:5.0.x.x-5.1.x.x产品系列,是最常规的编译方式
所谓的常规方式编译安装mysql 就是延续早期MYSQL 的3部曲安装方式即
./configure
make
make install
4.采用cmake 方式编译安装mysql
5.5.x.x-5.6.x.x 产品系列的特殊性,所以编译方式也和早期的产品安装的方式不同,采用 cmake 和gmake 方式编译安装
即./cmake;make;make install
5.采用二进制方式免编译安装mysql
采用二进制方式免编译安装mysql ,这种方式和yum /rpm 包安装方式类似,适合各类mysql 产品系列,不需要负载的编译设置及编译时间等待,直接解压下载的软件包,初始化即可完成mysql 的安装启动
如何正确选择mysql 的安装方式
yum /rpm 安装适合对数据库要求不太高的场合,例如:并发不大,公司内部,企业内部的一些场景。二进制免安装比较简单方便,适合5.0-5.1 和5.5-5.6 系列,是很多专业DBA的选择。
普通运维人员多采用编译的方式,5.0-5.1系列就是常规编译方式,5.5-5.6系列就是cmake编译方式。5.5及以上的版本,安装方式机器数量少的话,推荐cmake 编译方式,这是大多数运维人员的选择。数量多的话就用二进制免安装,也是没问题的。
mysql 安装—cmake方式
[]CentOS Linux release 7.4.1708 (Core)[]x86_64[]3.10.0-693.el7.x86_64[][][][][][][][][][]
cmake 编译
[root-OS tools]#cmake -DCMAKE_INSTALL_PREFIX=/mysql-5.5.32/mysql -DMYSQL_DATADIR=/mysql-5.5.32/mysql/data -DMYSQL_UNIX_ADDR=/mysql-5.5.32/mysql/mysql.sock -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_ZLIB=bundled -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DWITH_DEBUG=0 -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1
make &&make install
[][]
选择配置文件
cp /tmp/mysql-5.5.32/support-files/my-small.cnf /etc/my.cnf
配置环境变量
[root-OS mysql-5.5.32]# echo 'export PATH=/mysql-5.5.32/mysql/bin:$PATH' >>/etc/profile[root-OS mysql-5.5.32]# tail -1 /etc/profileexport PATH=/mysql-5.5.32/mysql/bin:$PATH[root-OS mysql-5.5.32]# source /etc/proprofile profile.d/ protocols[root-OS mysql-5.5.32]# source /etc/profile[root-OS mysql-5.5.32]# echo $PATH/mysql-5.5.32/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root-OS mysql-5.5.32]#
初始化
[][]
注:出现俩 OK 基本表示初始化成功!
启动MYSQL
[root@KM-OS mysql-5.5.32]# cp support-files/mysql.server /etc/init.d/mysqld[root@KM-OS mysql-5.5.32]# /etc/init.d/mysqld startStarting MySQL... SUCCESS![root@KM-OS mysql-5.5.32]# netstat -lntup|grep 3306tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 24239/mysqld[root@KM-OS mysql-5.5.32]#
相关调整
mysql> select user,host from mysql.user;+------+-----------+| user | host |+------+-----------+| root | 127.0.0.1 || root | ::1 || | KM-OS || root | KM-OS || | localhost || root | localhost |+------+-----------+6 rows in set (0.00 sec)mysql> delete from mysql.user where user='';Query OK, 2 rows affected (0.00 sec)
添加额外管理员
mysql> grant all privileges on *.* to system@'localhost' identified by '0.123456' with grant option;
修改密码
[root@KM-OS data]# /mysql-5.5.32/mysql/bin/mysqladmin -u root password '0.123456'
登录
[]
[root@KM-OS data]# chckconfig mysqld on-bash: chckconfig: command not found[root@KM-OS data]# chkconfig mysqld on[root@KM-OS data]# chkconfig --list mysqldNote: This output shows SysV services only and does not include nativesystemd services. SysV configuration data might be overridden by nativesystemd configuration.If you want to list systemd services use 'systemctl list-unit-files'.To see services enabled on particular target use'systemctl list-dependencies [target]'.mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off[root@KM-OS data]#
注:
chkconfig是管理系统服务(service)的命令行工具。所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序。
service命令可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。service命令的作用是去/etc/init.d目录下寻找相应的服务,进行开启和关闭等操作。
systemctl命令:是一个systemd工具,主要负责控制systemd系统和服务管理器。
登录mysql 故障解决:
[root@KM-OS mysql-5.5.32]#pkill mysqld
[root@KM-OS mysql-5.5.32]#rm rf /mysql-5.5.32/mysql/data/*
重新初始化!
编译make mysql 时的错误:
could not find curses (missing:curses_library curses_include_path)
.....
解决办法:
yum install ncurses-devel -y
然后删除mysql 解压目录重新装。
参数说明:
-DCMAKE_INSTALL_PREFIX= 指向mysql安装目录-DINSTALL_SBINDIR=sbin 指向可执行文件目录(prefix/sbin)-DMYSQL_DATADIR=/var/lib/mysql 指向mysql数据文件目录(/var/lib/mysql)-DSYSCONFDIR=/etc/mysql 指向mysql配置文件目录(/etc/mysql)-DINSTALL_PLUGINDIR=lib/mysql/plugin 指向插件目录(prefix/lib/mysql/plugin)-DINSTALL_MANDIR=share/man 指向man文档目录(prefix/share/man)-DINSTALL_SHAREDIR=share 指向aclocal/mysql.m4安装目录(prefix/share)-DINSTALL_LIBDIR=lib/mysql 指向对象代码库目录(prefix/lib/mysql)-DINSTALL_INCLUDEDIR=include/mysql 指向头文件目录(prefix/include/mysql)-DINSTALL_INFODIR=share/info 指向info文档存放目录(prefix/share/info)prefix官方推荐设为/usrStorage Engine相关类型csv,myisam,myisammrg,heap,innobase,archive,blackhole若想启用某个引擎的支持:-DWITH_<ENGINE>_STORAGE_ENGINE=1如:-DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_ARCHIVE_STORAGE_ENGINE=1-DWITH_BLACKHOLE_STORAGE_ENGINE=1若想禁用某个引擎的支持:-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1如:-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1-DWITHOUT_FEDERATED_STORAGE_ENGINE=1-DWITHOUT_PARTITION_STORAGE_ENGINE=1Library相关-DWITH_READLINE=1 启用readline库支持(提供可编辑的命令行)-DWITH_SSL=system 启用ssl库支持(安全套接层)-DWITH_ZLIB=system 启用libz库支持(zib、gzib相关)-DWTIH_LIBWRAP=0 禁用libwrap库(实现了通用TCP包装的功能,为网络服务守护进程使用)-DMYSQL_TCP_PORT=3306 指定TCP端口为3306-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 指定mysql.sock路径-DENABLED_LOCAL_INFILE=1 启用本地数据导入支持-DEXTRA_CHARSETS=all 启用额外的字符集类型(默认为all)-DDEFAULT_CHARSET=utf8 指定默认的字符集为utf8-DDEFAULT_COLLATION=utf8_general_ci 设定默认排序规则(utf8_general_ci快速/utf8_unicode_ci准确)-DWITH_EMBEDDED_SERVER=1 编译嵌入式服务器支持-DMYSQL_USER=mysql 指定mysql用户(默认为mysql)-DWITH_DEBUG=0 禁用debug(默认为禁用)-DENABLE_PROFILING=0 禁用Profiling分析(默认为开启)-DWITH_COMMENT='string' 一个关于编译环境的描述性注释
