安装准备:
1.操作系统为centos6.9
CentOS-6.9-x86_64-bin-DVD1to2
2.安装Oracle JDK (1.8u121)
- 下载jdk-8u121-linux-x64.tar.gz(/home/cdhadoop/Downloads)
- 解压 JDK 到 /usr/java/jdk.1.8.0_121, nn为支持的版本号,执行如下命令:
su
mkdir /usr/java/jdk.1.8.0_121
tar -zxvf /home/cdhadoop/Downloads/jdk-8u121-linux-x64.tar.gz -C /usr/java/jdk.1.8.0_121
cp -rf /usr/java/jdk.1.8.0_121/jdk1.8.0_121/* /usr/java/jdk.1.8.0_121/
rm -rf /usr/java/jdk.1.8.0_121/jdk1.8.0_121
- 设置JAVA_HOME环境变量
export JAVA_HOME=/usr/java/jdk.1.8.0_121
3.安装配置外部数据库(mysql-5.7.18-1.el6.x86_64.rpm-bundle)
3.1准备工作:
CentOS6.9中预装的MySQL版本为mysql-libs-5.1.73-8.el6_8.x86_64。在卸载较旧版本之前,如果您的系统中还没有用于运行mysqld
的用户名和组,那么就需要为系统添加一个mysql
用户 (并不是一定叫mysql
,也可以叫其他名称,但是需要遵循语法、操作规定)。
(1)添加mysql
组和mysql
用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
注:
groupadd
和useradd
的语法或名称在不同版本的Unix系统上可能略有不同,但在CentOS6.5中应进行如上操作。上述操作只是为了获得系统的所有权,而不是以登录为目的;使用useradd
命令和-r
和-s /bin/false
选项来创建一个没有登录权限的用户。
(2)查看系统旧版MySQL
rpm -qa | grep mysql
将会输出系统中原MySQL及其组件列表,例如:
-
mysql-libs-5.1.73-8.el6_8.x86_64
注: 以上列表中的文件可能并不全,但是列表中的文件将会按顺序被逐个移除。按照列表从下往上的顺序删除。
(3)卸载MySQL及其组件的顺序
注: 此处需要按依赖顺序逐个移除,否则会出现依赖包丢失或其他异常情况。
使用命令rpm -e --nodeps {-file-name}
进行移除操作:
rpm -e –-nodeps mysql-libs-5.1.73-8.el6_8.x86_64
3.2安装MySQL
(1)解压源文件
您可以将下载好的源文件(rpm-bundle.tar)解压至一个目录中,从而为安装做准备。
使用以下命令解压源文件到当前目录:
tar -xvf mysql-5.7.18-1.el6.x86_64.rpm-bundle.tar
(2)安装MySQL安装顺序
使用命令rpm -ivh {-file-name}
进行安装操作:
rpm -ivh mysql-community-common-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el6.x86_64.rpm
注:
i-install
安装;v-verbose
进度条;h-hash
哈希校验
3.3登录并创建MySQL密码
安装完后,使用命令service mysqld start
启动MySQL服务。
由于MySQL5.7.4之前的版本中默认是没有密码的,登录后直接回车就可以进入数据库,进而进行设置密码等操作。其后版本对密码等安全相关操作进行了一些改变,在安装过程中,会在安装日志中生成一个随机密码。
使用以下命令:
grep 'temporary password' /var/log/mysqld.log
即可查询到类似于如下的一条日志记录:
[Note] A temporary password is generated for root@localhost:
!(z%ehjw4*PZ
记录中的类似于最后绿色部分的字符串即为生成的随机密码。
此时,使用MySQL生成的随机密码就能够正常登录:
使用如下命名:
mysql -uroot -p !(z%ehjw4*PZ
登录成功后,请立即修改您的密码。
注: 如果没有修改密码,系统将会提示错误:在
"ALTER USER"
操作前不会执行其他操作;并且确保修改之后的密码的安全程度能够满足MySQL的要求。推荐数字、字母和特殊符号混用。
执行以下操作配置root
用户的密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql5.7@database.com';
Query OK, 0 rows affected (0.00 sec)
到此,基本的安装与密码配置已经结束。
另:如果想要修改密码的话,可以执行以下语句:
update mysql.user set authentication_string=password('mysql5.7@database.com') where user='root';
注: 从MySQL5.7.6开始,
mysql.user
表中存储密码的字段不再是password
,而是authentication_string
。
查看mysql的安装路径:
ps -ef|grep mysql
root 2923 1 0 00:11 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe
--datadir=/var/lib/mysql
--socket=/var/lib/mysql/mysql.sock
--pid-file=/var/run/mysqld/mysqld.pid
--basedir=/usr --user=mysql
mysql 3117 2923 0 00:11 pts/0 00:00:01 /usr/sbin/mysqld
--basedir=/usr
--datadir=/var/lib/mysql
--plugin-dir=/usr/lib64/mysql/plugin
--user=mysql
--log-error=/var/log/mysqld.log
--pid-file=/var/run/mysqld/mysqld.pid
--socket=/var/lib/mysql/mysql.sock
查看my.cnf配置文件的位置:
find / -name my.cnf # /etc/my.cnf
3.4配置mysql数据库
设置my.cnf,根据cloudera官方文档:https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_mysql.html#cmig_topic_5_5_2
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html [mysqld] explicit_defaults_for_timestamp=true transaction-isolation = READ-COMMITTED key_buffer_size = 32M max_allowed_packet = 32M thread_stack = 256K thread_cache_size = 64 query_cache_limit = 8M query_cache_size = 64M query_cache_type = 1 max_connections = 550 server-id = 1 log_bin=/var/lib/mysql/mysql_binary_log/binlog # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock binlog_format = mixed read_buffer_size = 2M read_rnd_buffer_size = 16M sort_buffer_size = 8M join_buffer_size = 8M # InnoDB settings innodb_file_per_table = 1 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 64M innodb_buffer_pool_size = 4G innodb_thread_concurrency = 8 innodb_flush_method = O_DIRECT innodb_log_file_size = 512M [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid sql_mode=STRICT_ALL_TABLES
注意:
“log_bin=/var/lib/mysql/mysql_binary_log/binlog”
如果配的目录中如果有其它用户创建的路径,如上一行中/var/lib/mysql/mysql_binary_log为用root用户手动创建的目录,要把它授权给mysql用户,否则修改完配置文件后,mysqld将无法启动。
3.5 设置mysql随机启动
$ chkconfig mysqld on
$ chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3.6 运行mysql_secure_installation对mysql进行安全配置
$ sudo /usr/bin/mysql_secure_installation [...] Enter current password for root (enter for none): OK, successfully used password, moving on... [...] Set root password? [Y/n] y New password: Re-enter new password: Remove anonymous users? [Y/n] Y [...] Disallow root login remotely? [Y/n] N [...] Remove test database and access to it [Y/n] Y [...] Reload privilege tables now? [Y/n] Y All done!
3.7 安装MySQL JDBC Driver
- 下载 MySQL JDBC driver http://www.mysql.com/downloads/connector/j/5.1.html.下载时最新为mysql-connector-java-5.1.42.tar.gz。
- Extract the JDBC driver JAR file from the downloaded file. For example:
tar zxvf
- 拷贝并重命名 JDBC driver, 例如:
$ sudo cp mysql-connector-java-5.1.42/mysql-connector-java-5.1.42-bin.jar /usr/share/java/mysql-connector-java.jar
如果目录不存在就先创建再拷贝:
$ sudo mkdir -p /usr/share/java/ $ sudo cp mysql-connector-java-5.1.42/mysql-connector-java-5.1.42-bin.jar /usr/share/java/mysql-connector-java.jar
注意: 不要使用 yum install 命令来安装MySQL driver, 因为它安装OpenJDK,然后使用Linux替代命令设置系统的JDK是OpenJDK。