[原创] debian 10 搭建Jira+Confluence+Bitbucket项目管理工具(一) -- 安装jdk(含jre)及 MySql 5.7.30
[原创] debian10 搭建Jira+Confluence+Bitbucket项目管理工具(一) -- 安装jdk(含jre)及 MySql 5.7.30
回老家已经有一段时间了, 四五线城市有点落后, 新一年开始, 准备踏踏实实做点儿事情了....., 要到一台Dell服务器, 准备搭建开发测试环境, 试图让小地方的开发工作走上正轨, 闲话少说开始正文:
一、搭建VMWare vSphere虚拟化环境! (因为给我的机器比较老, 性能较差,倒是也够用, 希望以后会给我加一台机器, 这也是我为什么要装vSphere平台的原因.)
1.1 Dell官网下载定制的VMWare Esxi 6.5, 文件名类似:VMware-VMvisor-Installler-6.5.0-xxxxx.x86_64-Dell_Customized_A05.iso, 用dell官网定制的好处是驱动什么可以省很大一部分劲儿.
下载之后, 用UltraISO将esxi.iso写入u盘中, 然后拿到服务器上从U盘启动安装, 安装过程灰常简单, 基本就是设置密码, 然后一路回车就可以了.
(这里唯一可能出问题的地方就是Raid的配置, 可能要先把阵列卡的驱动放到U盘中. 这里应为我这台机器硬盘非常小, 一共1.5T, 所以没办法, 我没有做raid. 定期本分到另外的硬盘上吧.)
1.2 安装Esxi以后, 界面上会出现管理的IP地址, 直接通过浏览器就可以访问Esxi. 这个时候已经可以创建虚拟机用了. 此时, Esxi的Web界面就是管理这台机器的, 但是, 我还有个目的是希望以后可以新增机器来扩容, 因此我必须要安装vCenter来达到控制多台Esxi主机的目的.
下载VMware vSphere6.5套件中的vCenter.iso, 这分有两个版本, 一个是4Linux的VMware-VCSA-all-6.5-xxxx.iso, 一个是4Windows的VMware-VIM-all-6.5-xxx.iso. 这里我计划将vCenter装到这台Dell的Esxi机器上, 所以强烈建议选择4Linux的VCSA的版本, 6.5的VCSA已经非常稳定了.
下载完毕后, 在Esxi的web界面, 创建虚拟机, 按着说明一步步来就可以. 就是在选择镜像的时候, 需要选择VCSA-all-6.5-xxx.iso中的VCSA文件夹下的VMware-vCenter-Server-Appliance-6.5-xxx_ovf10-.ova, 即可. 安装完毕后, 启动vCenter虚拟机即可. 具体操作, 参考晚上教程就行, 有很多.
1.3 vCenter虚拟机启动后, 也会有一个Web的vCenter管理界面. 在这个界面中, 可以把iso、文件什么的传到datastore中. 网上教程有一大堆.
这里主要的是虚拟机的资源分配问题, 我新建了一个Cluster, 然后创建了2个资源组, 一个叫vCenterResourcePool, 一个叫BaseResourcePool, 创建这2个资源池的目的是为了方便以后分别扩展其性能. 这里说明几个概念, Cluster是一群(Esxi)机器的集合, cluster就表示在这些硬件机器上抽象出来的一个资源池的概念. 在这个cluster中, 我分别创建了那2个资源池, vCenter设置成低资源, 用来承载vCenter和ProjMgr两个系统, base资源池设置成高资源, 以便于不停的对外提供虚拟机创建的服务. 配置好资源池后, 我将2个虚拟机vCenter移到了vCenterResourcePool中, 又在vCenterResourcePool中创建了ProjMgr的虚拟机并安装了VMwareTool工具.
当然, 在vCenter里还有各种虚拟机模板的概念, 可以用来快速的克隆出你需要的虚拟机环境.
具体vCenter操作, 可以参考网上的教程,也很丰富.
1.4 创建完vCenter之后, 又在vCenter资源池中创建一个debian 9.3的机器, 用来做项目管理. 应为对linux接触比较少, 只是工作的时候学了一些基本操作, 所以我把debian9.3装了lxde桌面环境, vi、vim完全用不惯, 还得用桌面环境来操作各种文件, 实在没办法再用vi. 安装过程不表, 我安装完成后, 直接删除了所有关于office、game、audio之类的自带软件. 软件源的问题, 我是直接在安装的时候选择的国内软件源.
2.1 做完以上操作, 开始进入主题, 安装Atlanssion公司的Jira. 网上能找到的破解版本最高是Jira 7.4, 因此去官网下载了Jira7.4 for Linux64的版本.
下载需要先注册, 注册时候需要FQ, 应为有个验证码一样的东西, 貌似用的是谷歌的, 但是谷歌被墙了, 结果显示不出来, 所以按钮就是灰色的, FQ后就可以正常注册了.
看了下说明, 项目管理Jira 7.4支持Jre 1.8, mysql 5.5~5.7, 但是知识库confluence6.5只支持到Jre1.8, mysql 5.5~5.6, 因此采用debian 9.3 + Jre1.8 + mysql 5.6来搭建Jira环境.
2.2 以下进入安装jre, 和mysql 5.6.39的安装操作, 这部分内容比较繁琐, 也容易出错, 这里才是我真正想记录的内容, 操作系统是64位的Debian 9.3.
2.3 安装jrk: 先去oracle官网下载jre, server-jre-8u162-linux-x64.tar.gz.
下载完毕后, 直接用Esxi的Web界面来操作ProjMgr虚拟机, 我发现没办法把笔记本上下载的东西给传到虚拟机上, 然后又在ProjMgr上安装了samba服务器.
2.3.1 安装samba, 在debian的终端命令行窗口执行:
apt-get install samba
安装完毕后, 在笔记本上通过\\ip访问ProjMgr虚拟机, 把tar包给传上去后. 开始安装jdk1.8, 这里要问问什么不用apt-get直接安装jdk, 应为apt-get安装的只有openJDK, debian源上配的都是开源的版本, 但是Jira要求是SunJDK, 所以去oracle官网下载的jdk1.8.
2.3.2 安装jdk, 将jdk1.8.tar解压到/usr/java目录下, 然后在debian终端命令窗口执行:
vi /etc/profile
//也可以放在如下文件中
vi ~/.bashrc
打开脚本文件(或者打开/etc/profile, 在profile文件尾部添加也可以), 并在尾部添加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
添加完毕后保存即可.
2.3.3 测试, 在debian的命令行窗口, 输入命令:
java -version
看到输出一下内容, 说明就Okey了.
java version "1.8.0_162"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.8.0_162-b12)
Java HotSpot(TM) Client VM (build 1.8.0_162-b12, mixed mode, sharing)
2.4 安装mysql, 这里我不得不吐槽一下, 网上的教程太多是CentOS的了或者Debian 8的, 照着操作了一下兼职是问题百出, 尤其在mysql官网下载的mysql 5.6.bundle.tar的那个版本, 试了几次都没装好. 这可可能要问为什么不用apt-get install mysql-server-5.6直接安装呢? 对不起, Debian 9.3自带的mysql版本只有5.5.999. 而mysql 5.6.bundle.tar的安装方式我又搞不定, 最后找到官网的一篇文章https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/, 参照这个来搞定了. 还有个哥们的博客对我帮助也不小, 博文地址. http://blog.csdn.net/berguiliu/article/details/47419371
2.4.1, 打开https://dev.mysql.com/downloads/repo/apt/页面, 下载底部的Ubuntu / Debian (Architecture Independent), 的deb包35.1k, 名称为mysql-apt-config_0.8.15-1_all.deb文件地址: https://repo.mysql.com//mysql-apt-config_0.8.15-1_all.deb
//2020.8-29日,更新为在debian10中执行mysql 5.7.30的安装。以下内容由mysql5.6 变更为mysql5.7相关的内容.
2.4.2: 下载完毕后, 通过\\ip地址将mysql-apt-config_0.8.15-1_all.deb文件通过samba或者rz传到ProjMgr的虚拟机中, 然后安装并更新源:
sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb
在弹出的选择模式中, 选择第一项mysql-server-5.7, 并确定, 之后会将mysql软件源的网址写入到source-list文件中去, 之后执行:
sudo apt-get update
sudo apt-get install mysql-server-5.7
上面的命令(or 也可以在执行完apt-get update 之后, 在桌面环境下的软件包管理器中, 搜索mysql-server, 找到5.7版本后, 双击还行安装).
2.4.3 配置mysql的配置文件, my.ini, 对数据位置的存储, 端口号等内容进行配置, 先执行一下命令查找mysqld位置,及my.cnf文件的执行顺序:
which mysld
/usr/sbin/mysqld --verbose --help|grep -A 1 'Default options'
执行完以上命令, 会显示出配置文件的加载顺序, 这是我们可以打开/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf看看那个文件适合修改配置, 在/etc.mysql/my.cnf文件只是个链接, 所以只能在/etc/my.cnf文件中做配置变更.
修改完的my.cnf配置如下:
# The MariaDB configuration file # # The MariaDB/MySQL tools read configuration files in the following order: # 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults, # 2. "/etc/mysql/conf.d/*.cnf" to set global options. # 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options. # 4. "~/.my.cnf" to set user-specific options. # # If the same option is defined multiple times, the last one will apply. # # One can use all long options that the program supports. # Run program with --help to get a list of available options and with # --print-defaults to see which it would actually understand and use. # # This group is read both both by the client and the server # use it for options that affect everything # [client-server] [client]
default-character-set = utf8mb4 port = 3306 socket = /data/database/mysql/mysql5730/mysqld.sock [mysqld_safe] pid-file = /data/database/mysql/mysql5730/mysqld.pid socket = /data/database/mysql/mysql5730/mysqld.sock log-error = /data/database/mysql/mysql5730/log/error.log [mysql] default-character-set = utf8mb4 socket = /data/database/mysql/mysql5730/mysqld.sock [mysqld] port = 3306 character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
character-set-client-handshake = FALSE
init_connect = 'SET NAMES utf8mb4' #bind-address = 127.0.0.1 skip-name-resolve = 1 basedir = /usr/bin datadir = /data/database/mysql/mysql5730/data tmpdir = /tmp lc-messages-dir = /usr/share/mysql log-error = /data/database/mysql/mysql5730/log/error.log socket = /data/database/mysql/mysql5730/mysqld.sock symbolic-links = 0 #[mysqld-5.7] innodb_page_cleaners = 4 log_timestamps = system skip-ssl #skip-grant-tables #innodb_buffer_pool_dump_pct = 40 #innodb_undo_log_truncate = 1 #innodb_max_undo_log_size = 2G #innodb_purge_rseg_truncate_frequency = 128 #binlog_gtid_simple_recovery = 1 #transaction_write_set_extraction = MURMUR32 #show_compatibility_56 = on #table_open_cache = 512 ################# basic settings######################## #server-id = 11 max_connections = 1000 max_connect_errors = 100 default-storage-engine = INNODB lower_case_table_names = 1 max_allowed_packet = 16M explicit_defaults_for_timestamp = 1 autocommit = 1 transaction_isolation = READ-COMMITTED sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER" interactive_timeout = 60 wait_timeout = 60 join_buffer_size = 128M sort_buffer_size = 32M read_buffer_size = 16M read_rnd_buffer_size = 32M tmp_table_size = 128M ################# log settings######################## log_error = /data/database/mysql/mysql5730/log/error.log slow_query_log = 1 slow_query_log_file = /data/database/mysql/mysql5730/log/query-slow.log log_queries_not_using_indexes = 1 #log_slow_admin_statements = 1 #log_slow_slave_statements = 1 log_throttle_queries_not_using_indexes = 10 expire_logs_days = 90 long_query_time = 1 min_examined_row_limit = 100 ################# replication settings######################## #master_info_repository = TABLE #relay_log_info_repository = TABLE #log_bin = /data/local/mysql-5.7.19/log/mysql-bin #sync_binlog = 4 #gtid_mode = on #enforce_gtid_consistency = 1 #log_slave_updates #binlog_format = row #relay_log = /data/local/mysql-5.7.19/log/mysql-relay.log #relay_log_recovery = 1 #binlog_gtid_simple_recovery = 1 #slave_skip_errors = ddl_exist_errors ################# innodb settings######################## innodb_page_size = 16K innodb_buffer_pool_size = 4G innodb_buffer_pool_instances = 8 innodb_lock_wait_timeout = 5 innodb_large_prefix = 1 innodb_thread_concurrency = 64 innodb_sort_buffer_size = 64M innodb_flush_log_at_trx_commit = 2 innodb_log_file_size = 400M innodb_log_files_in_group = 2 innodb_log_buffer_size = 16M innodb_page_cleaners = 8 #innodb_buffer_pool_load_at_startup = 1 #innodb_buffer_pool_dump_at_shutdown = 1 #innodb_lru_scan_depth = 2000 #innodb_io_capacity = 4000 #innodb_io_capacity_max = 8000 #innodb_flush_method = O_DIRECT #innodb_log_group_home_dir = /data/local/mysql-5.7.19/log/redolog/ #innodb_undo_directory = /data/local/mysql-5.7.19/log/undolog/ #innodb_undo_logs = 128 #innodb_undo_tablespaces = 0 #innodb_flush_neighbors = 1 #innodb_purge_threads = 4 #innodb_print_all_deadlocks = 1 #innodb_strict_mode = 1 ################# semi sync replication settings########### #plugin_dir=/usr/lib/mysql/plugin #plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" #loose_rpl_semi_sync_master_enabled = 1 #loose_rpl_semi_sync_slave_enabled = 1 #loose_rpl_semi_sync_master_timeout = 5000 # Import all .cnf files from configuration directory !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mariadb.conf.d/
为了安装jira, 根据jira官方文档的建议, 需要在my.cnf中额外修改几项:
################# innodb settings######################## ### jira 官方建议配置 ###
innodb_default_row_format = DYNAMIC
innodb_large_prefix = ON
innodb_file_format = Barracuda
innodb_log_file_size = 2G
## 如果sql_mode含有以下项, 记得要去除掉.
## sql_mode = NO_AUTO_VALUE_ON_ZERO
### confluence 官方建议配置 ###
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_bin
max_allowed_packet=256M
#binlog_format=row
这里有个错误的地方, 配置文件中把basedir设置成了/usr/bin, 所以读取配置文件的可能去找/usr/bin/my.cnf文件, 所以这里把/etc/my.cnf拷贝到/usr/bin/my.cnf中, 防止万一出问题.
添加数据目录, 如: /data/mysql/data-file 和 /data/mysql/log-file作为数据和日志目录, 并且在日志目录下创建文件 error.log, query-slow.log
修改完毕后, 的后续操作:
a. 在保存完my.cnf后关闭mysql
sudo service mysql stop
b. 安装mysql安装脚本
sudo /usr/bin/mysql_install_db --basedir=/usr/bin --datadir=/data/mysql/data-file
安装完脚本后, 需要将数据文件的权限修改成mysql可访问的形式, 以及mysqld.sock和mysqld.pid的文件夹访问权限,
命令格式为: chown -R UserName:GroupName /dirPath, 即执行如下命令即可:
[重要注意]: 这里需要先确定mysql的相关文件的位置, 通过 whereis mysql来找, 具体的文件位置如下(因个人而异):
/usr/bin/mysql*
/usr/sbin/mysql*
/usr/share/mysql*
/usr/lib/mysql*
/usr/local/mysql*
/var/run/mysql*
/etc/mysql*
/etc/my.cnf
/*以下为自己创建的数据和日志目录*/
/data/mysql/data-file*
/data/mysql/log-file*
执行赋权命令
chown -R root:mysql /usr/bin/mysql*
chown -R root:mysql /usr/sbin/mysql*
chown -R root:mysql /usr/share/mysql*
chown -R root:mysql /usr/lib/mysql*
chown -R root:mysql /usr/local/mysql*
chown -R root:mysql /var/run/mysql*
chown -R root:mysql /etc/mysql*
chown -R root:mysql /etc/my.cnf
chown -R root:mysql /data/mysql*
chmod -R 775 /usr/bin/mysql*
chmod -R 775 /usr/sbin/mysql*
chmod -R 775 /usr/share/mysql*
chmod -R 775 /usr/lib/mysql*
chmod -R 775 /usr/local/mysql*
chmod -R 775 /var/run/mysql*
chmod -R 775 /etc/mysql*
chmod -R 775 /etc/my.cnf
chmod -R 770 /data/mysql*
c. 在my.cnfwe文件中, 添加skip-grant-tables 后,启动mysql 。
service mysql start
mysql -uroot -p
直接按回车进入数据库命令行,执行修改用户密码操作
use msyql;
update msyql.user set authentication_string=password('xxxx') where user='root' and host='localhost';
打开/etc/my.cnf, 注释掉skip-grant-tables 后, 执行:
flush privileges;
quit;
重新启动mysql
service mysql restart
启动mysql安全模式
sudo mysqld_safe &
备注:
关闭MySQL root用户远程访问权限:
use mysql;
update user set host = "localhost" where user = "root" and host = "%";
flush privileges;
打开MySQL root用户的远程访问权限:
use mysql;
update user set host = "%" where user = "root";
flush privileges;
mysql8.0+版本上直接新增账户,隐式账户为'root'@'localhost'
user mysql;
create user 'root'@'%' identified by 'xxxx';
d. 使用mysql -uroot -p 登录后, 执行修改mysql默认密码, 并允许远程访问操作:
有时候第一登陆后, 会提示你使用 alter user 修改密码.
use mysql;
alter user 'root'@'%' identified by 'xxxx';
或者(5.7+以上版本要求)
alter user user() identified by 'xxxx';
或者(8.0+以上版本要求,先新增账户后才能使用grant,无法直接使用隐式账户)
create user ‘root’@‘%’ identified by ‘XXXX’;
然后执行以下语句, 授权远程访问
sudo /usr/bin/mysqladmin -u root password 'XXXXX'
grant all privileges on *.* to 'root'@'%' identified by 'XXXX' with grant option;
grant all privileges on *.* to 'root'@'localhost' identified by 'XXXX' with grant option;
flush privileges;
sudo service mysql start
备注: 其他相关的mysql操作命令
service mysql restart
sudo /etc/int.d/mysql start | stop |restart
几个debian和ubuntu下基本命令:
apt-get install xxx 安装软甲包
apt-get remove xxx 删除软件包
apt-get autoremove --purge xxx 彻底删除软件包
apt-get autoclean 清楚残留
apt-cache search all |grep xxx 查找某软件
apt-get -f install 修复依赖损坏
apt-get update 更新软件源
apt-get upgrade 更新升级系统
// 备份一个windows的my.ini
[client-server] [client] port = 53306 default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] #bind-address = 127.0.0.1 port = 53306 character-set-server = utf8mb4 character-set-client-handshake = FALSE collation-server = utf8mb4_unicode_ci init_connect = 'SET NAMES utf8mb4' basedir = "C:/Program Files/mysql-5.7.35" datadir = "E:/programDatas/mySqlData/mysql-5.7.35/data" tmpdir = "E:/programDatas/mySqlData/mysql-5.7.35/tmp" #secure_file_priv = #lc-messages = en_US #lc-messages-dir = "C:/Program Files/mysql-5.7.35/share" #[mysqld-5.7] #plugin-load = authentication_windows.dll #plugin_dir = "C:/Program Files/mysql-5.7.35/lib/plugin" skip-ssl #skip-grant-tables #skip-name-resolve = 1 symbolic-links = 0 #show_compatibility_56 = on #transaction_write_set_extraction = MURMUR32 #table_open_cache = 512 ################# basic settings######################## autocommit = 1 default-storage-engine = INNODB explicit_defaults_for_timestamp = 1 max_allowed_packet = 16M max_connections = 1000 max_connect_errors = 100 interactive_timeout = 60 join_buffer_size = 128M lower_case_table_names = 1 read_buffer_size = 16M read_rnd_buffer_size = 32M #server-id = 11 sort_buffer_size = 32M sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER" tmp_table_size = 128M transaction_isolation = READ-COMMITTED wait_timeout = 60 ################# log settings######################## expire_logs_days = 90 min_examined_row_limit = 100 log_error = "E:/programDatas/mySqlData/mysql-5.7.35/log/mysql-error.log" long_query_time = 1 log_queries_not_using_indexes = 1 #log_slow_admin_statements = 1 #log_slow_slave_statements = 1 log_timestamps=system log_throttle_queries_not_using_indexes = 10 slow_query_log = 1 slow_query_log_file = "E:/programDatas/mySqlData/mysql-5.7.35/log/mysql-slow.log" ################# replication settings######################## #binlog_format = row #binlog_gtid_simple_recovery = 1 enforce_gtid_consistency = 1 #gtid_mode = on #log_slave_updates #master_info_repository = TABLE #log_bin = "E:/programDatas/mySqlData/mysql-5.7.35/mysql-bin" #relay_log = "E:/programDatas/mySqlData/mysql-5.7.35/log/mysql-relay.log" #relay_log_recovery = 1 #relay_log_info_repository = TABLE #sync_binlog = 4 #slave_skip_errors = ddl_exist_errors ################# innodb settings######################## innodb_buffer_pool_size = 4G innodb_buffer_pool_instances = 8 #innodb_buffer_pool_load_at_startup = 1 #innodb_buffer_pool_dump_pct = 40 #innodb_buffer_pool_dump_at_shutdown = 1 #innodb_flush_method = O_DIRECT #innodb_flush_neighbors = 1 innodb_flush_log_at_trx_commit = 2 #innodb_io_capacity = 4000 #innodb_io_capacity_max = 8000 innodb_lock_wait_timeout = 5 innodb_large_prefix = 1 innodb_log_file_size = 400M innodb_log_files_in_group = 2 innodb_log_buffer_size = 16M #innodb_lru_scan_depth = 2000 #innodb_log_group_home_dir = "E:/programDatas/mySqlData/mysql-5.7.35/log/redolog" #innodb_strict_mode = 1 innodb_sort_buffer_size = 64M innodb_thread_concurrency = 64 innodb_page_cleaners = 8 innodb_page_size = 16K innodb_page_cleaners = 4 #innodb_purge_threads = 4 #innodb_print_all_deadlocks = 1 #innodb_purge_rseg_truncate_frequency = 128 #innodb_max_undo_log_size = 2G #innodb_undo_directory = "E:/programDatas/mySqlData/mysql-5.7.35/log/undolog" #innodb_undo_logs = 128 #innodb_undo_log_truncate = 1 #innodb_undo_tablespaces = 0 ################# semi sync replication settings########### #loose_rpl_semi_sync_master_enabled = 1 #loose_rpl_semi_sync_slave_enabled = 1 #loose_rpl_semi_sync_master_timeout = 5000 #将Mysql注册为服务: #mysqld --initialize #mysqld -install Mysql5735 --defaults-file="C:/Program Files/mysql-5.7.35/my.ini" #mysqld --remove Mysql5735