Правильный способ переопределения Mysql my.cnf в CentOS / RHEL?

Контекст: я портирую серверное программное обеспечение с открытым исходным кодом (и пишу соответствующую документацию) с Debian / Ubuntu на CentOS / RHEL.

Чтобы программное обеспечение работало правильно, я необходимо добавить дюжину определенных параметров в конфигурацию Mysql (пример: увеличить max_allowed_packet ).

С точки зрения Debian, я знаю, что могу переопределить my.cnf MySQL, добавив файл в ] /etc/mysql.d , скажем /etc/mysql.d/my-software.cnf .

Мой вопрос : как сделать то же самое правильно на CentOS / RHEL?

Другая информация:

  • Я знаю, где mysqld ищет свой файл конфигурации, благодаря https://dev.mysql.com/doc/refman/5.7/en/option-files.html . Но для CentOS я не понимаю: m перенос серверного программного обеспечения с открытым исходным кодом (и написание соответствующей документации) с Debian / Ubuntu на CentOS / RHEL.

    Для правильной работы программного обеспечения мне нужно добавить дюжину конкретных параметров в конфигурацию Mysql (пример: увеличить max_allowed_packet ).

    С точки зрения Debian, я знал, что могу переопределить my.cnf в Mysql, добавив файл в /etc/mysql.d , скажем / etc / mysql.d / my-software.cnf .

    Мой вопрос: : как сделать то же самое правильно в CentOS / RHEL?

    Другая информация:

    • Я знаю, где mysqld ищет свои файл конфигурации благодаря https://dev.mysql.com/doc/refman/5.7/en/option-files.html . Но для CentOS я не понимаю: m перенос серверного программного обеспечения с открытым исходным кодом (и написание соответствующей документации) с Debian / Ubuntu на CentOS / RHEL.

      Для правильной работы программного обеспечения мне нужно добавить дюжину определенных параметров в конфигурацию Mysql (пример: увеличить max_allowed_packet ).

      С точки зрения Debian, я знал, что могу переопределить my.cnf Mysql, добавив файл в /etc/mysql.d , скажем / etc / mysql.d / my-software.cnf .

      Мой вопрос: : как сделать то же самое правильно в CentOS / RHEL?

      Другая информация:

      • Я знаю, где mysqld ищет свои файл конфигурации благодаря https://dev.mysql.com/doc/refman/5.7/en/option-files.html . Но для CentOS я не понимаю:

        Чтобы программа работала правильно, мне нужно добавить дюжину определенных параметров в конфигурацию Mysql (пример: увеличить max_allowed_packet ).

        С точки зрения Debian, я знал, что могу переопределить My.cnf от mysql, добавив файл в /etc/mysql.d , скажем /etc/mysql.d/my-software.cnf .

        Мой вопрос: ]: как сделать то же самое в CentOS / RHEL?

        Другая информация:

        • Я знаю, где mysqld ищет свой файл конфигурации благодаря https://dev.mysql.com/doc/refman/ 5.7 / ru / option-files.html . Но для CentOS я не понимаю:

          Чтобы программа работала правильно, мне нужно добавить дюжину определенных параметров в конфигурацию Mysql (пример: увеличить max_allowed_packet ).

          С точки зрения Debian, я знал, что могу переопределить My.cnf от mysql, добавив файл в /etc/mysql.d , скажем /etc/mysql.d/my-software.cnf .

          Мой вопрос: ]: как сделать то же самое в CentOS / RHEL?

          Другая информация:

          • Я знаю, где mysqld ищет свой файл конфигурации благодаря https://dev.mysql.com/doc/refman/ 5.7 / ru / option-files.html . Но для CentOS я не понимаю: cnf, добавив файл в /etc/mysql.d , скажем /etc/mysql.d/my-software.cnf .

            Мой вопрос : как чтобы сделать то же самое правильно в CentOS / RHEL?

            Другая информация:

            • Я знаю, где mysqld ищет свой файл конфигурации, благодаря https://dev.mysql.com/doc/refman/5.7/en /option-files.html. Но для CentOS я не понимаю: cnf, добавив файл в /etc/mysql.d , скажем /etc/mysql.d/my-software.cnf .

              Мой вопрос : как чтобы сделать то же самое правильно в CentOS / RHEL?

              Другая информация:

              • Я знаю, где mysqld ищет свой файл конфигурации, благодаря https://dev.mysql.com/doc/refman/5.7/en /option-files.html. Но для CentOS я не понимаю: Затем я настроил веб-перехватчики из GitHub, чтобы запускать сборку в jenkins при открытии или фиксации нового запроса на слияние. Я настроил ...

                Я использую Jenkins с плагином GitHub Pull Request Builder . Затем я настроил веб-перехватчики из GitHub, чтобы запускать сборку в jenkins при открытии или фиксации нового запроса на слияние.

                Я настроил подключаемый модуль GHPRB с Jenkins DSL:

                job("name") {
                    properties {
                        githubProjectUrl("https://github.com/org/${repo}")
                    }
                    scm {
                        git {
                            remote {
                                name("origin")
                                url("git@github.com:org/${repo}.git")
                                credentials("jenkins-ssh-keyid")
                            }
                            branch("**")
                            extensions {
                                gitTagMessageExtension()
                            }
                        }
                    }
                    triggers {
                        githubPullRequest{
                            admins(["github-username"])
                            orgWhitelist('org-name')
                            cron("")
                            triggerPhrase("build")
                            extensions {
                                commitStatus {
                                    context("unittest")
                                }
                            }
                           useGitHubHooks()
                       }
                    }
                    steps {
                        shell("./run-unittests");
                    }
                }
                

                Проблема, с которой я сталкиваюсь, заключается в том, что иногда Дженкинс запутывается и выбирает неправильный коммит для развития.

                Когда это происходит, вывод Дженкинса выглядит следующим образом:

                GitHub pull request #9 of commit 126434b, no merge conflicts.
                Setting status of 126434b to PENDING with url http://jenkins/job/unittest/26/ and message: 'Build started sha1 is merged.'
                Using context: unittest
                > git rev-parse --is-inside-work-tree # timeout=10
                Fetching changes from the remote Git repository
                > git config remote.origin.url git@github.com:org/repo.git # timeout=10
                Fetching upstream changes from git@github.com:org/repo.git
                > git --version # timeout=10
                using GIT_SSH to set credentials 
                > git -c core.askpass=true fetch --tags --progress git@github.com:org/repo.git +refs/heads/*:refs/remotes/origin/*
                Seen branch in repository origin/feature-branch-0
                Seen branch in repository origin/feature-branch-1
                Seen branch in repository origin/feature-branch-2
                Seen 3 remote branches
                Checking out Revision 1995d66 (origin/master)
                

                Здесь Дженкинс переходит от использования кончика ветки функций ( 126434b ) к использованию кончика мастера ( 1995d66 ) вместо этого.

                 > git config core.sparsecheckout # timeout=10
                 > git checkout -f 1995d66
                 > git rev-list ba7ec55 # timeout=10
                 > git describe --tags 126434b # timeout=10
                Tag information could not be determined for this revision; no git tag info will be exported
                

                Обратите внимание, что когда подключаемый модуль сообщений тегов Git запускает git describe для проверки информации тегов, он использует идентификатор фиксации для ветки функции.

                Затем Дженкинс продолжает работу, работая над основной подсказкой ( 1995d66 ), вместо подсказки ветки функции ( 126434b ), как ожидалось.

3
задан 22 September 2016 в 15:47
2 ответа

Проблема заключалась в спецификации branch и refspec. Изменение секции задания scm.git на эту, решило проблему проверки Дженкинса на неправильный коммит:

scm {
    git {
        remote {
            name("origin")
            url("git@github.com:org/${repo}.git")
            credentials("jenkins-ssh-keyid")
            refspec('+refs/pull/*:refs/remotes/origin/pr/*')
            }
            branch('${ghprbActualCommit}')
        }
    }
}
2
ответ дан 3 December 2019 в 06:57

На случай, если у кого-то еще возникнет эта проблема по тем же причинам, что и у нас!

Это может произойти, если ваш кеш поврежден. Найдите папку «cache» под вашим Jenkins и удалите все папки git внутри нее. (Сначала, конечно, выключите Дженкинса).

0
ответ дан 13 December 2019 в 14:18

Теги

Похожие вопросы