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/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 -OS tools]#cmake -DCMAKE_INSTALL_PREFIX=
make &&make install
[ ]
[ ]
选择配置文件
cp /tmp/mysql-5.5.32/support-files/my-small.cnf /etc/my.cnf
配置环境变量
[root-5.5.32]# echo 'export PATH=/mysql-5.5.32/mysql/bin:$PATH' >>/etc/profile -OS mysql
[root-5.5.32]# tail -1 /etc/profile -OS mysql
export PATH=/mysql-5.5.32/mysql/bin:$PATH
[root-5.5.32]# source /etc/pro -OS mysql
profile profile.d/ protocols
[root-5.5.32]# source /etc/profile -OS mysql
[root-5.5.32]# echo $PATH -OS mysql
/mysql-5.5.32/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root-5.5.32]# -OS mysql
初始化
[ ]
[ ]
注:出现俩 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 start
Starting MySQL... SUCCESS!
[root@KM-OS mysql-5.5.32]# netstat -lntup|grep 3306
tcp 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 mysqld
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd 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官方推荐设为/usr
Storage 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=1
Library相关
-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' 一个关于编译环境的描述性注释