Package Base Details: mysql

Git Clone URL: https://aur.archlinux.org/mysql.git (read-only, click to copy)
Submitter: Barthalion
Maintainer: muflone
Last Packager: muflone
Votes: 80
Popularity: 0.000168
First Submitted: 2013-04-25 19:13 (UTC)
Last Updated: 2023-11-15 01:11 (UTC)

Pinned Comments

muflone commented on 2023-08-16 17:21 (UTC) (edited on 2023-08-16 20:41 (UTC) by muflone)

Warning

https://dev.mysql.com/doc/refman/8.1/en/downgrading.html

Downgrade from MySQL 8.1 to MySQL 8.0 or earlier is not supported. The only supported alternative is to restore a backup taken before upgrading. It is therefore imperative that you back up your data before starting the upgrade process.

MySQL 8.0 is available in https://aur.archlinux.org/packages/mysql80

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 10 .. 19 Next › Last »

FrederickZh commented on 2020-04-27 19:58 (UTC)

@Muflone I agree with @rtucek that it's probably better to pack mysql_config_editor into mysql-clients. As a matter of fact, it's packed in the official mysql-community-client package for Ubuntu:

$ dpkg-query -L mysql-community-client | rg mysql_config
/usr/bin/mysql_config_editor
/usr/share/man/man1/mysql_config_editor.1.gz

And btw I noticed mysql-secret-store-login-path from MySQL Shell that I maintain also requires mysql-community-client for secret store support. Considering the functionality it provides I reckon it also makes more sense to put it in the client package. I'd appreciate it if you could move this binary. Thank you!

Zeitgeist-J commented on 2020-03-31 16:28 (UTC)

Package is not including mysqld.sock (/run/mysqld/mysqld.sock) which does not allows to complete the mysql_secure_installation command. Am I doing something wrong or is it a package error?

keoma commented on 2019-10-30 23:22 (UTC)

@FrederickZh it worked. I could update protobuf and install mysql seamlessly. Thank you.

keoma commented on 2019-10-29 23:02 (UTC)

@FrederickZh thank you. I'll try later today.

FrederickZh commented on 2019-10-29 04:16 (UTC)

@keoma Use this for now:

diff --git a/.SRCINFO b/.SRCINFO
index 0d08088..2121f72 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -17,9 +17,8 @@ pkgbase = mysql
    makedepends = libedit
    makedepends = libevent
    makedepends = re2
    makedepends = rapidjson
-   makedepends = protobuf
    source = https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-boost-8.0.17.tar.gz
    source = my-default.cnf
    source = mysql-ld.so.conf
    source = mysql.sysconfig
@@ -43,9 +42,8 @@ pkgname = mysql
    depends = libtirpc
    depends = icu
    depends = lz4
    depends = libevent
-   depends = protobuf
    depends = systemd-libs
    optdepends = perl-dbd-mysql: for mysqlhotcopy, mysql_convert_table_format and mysql_setpermission
    provides = mariadb=8.0.17
    provides = mysql=8.0.17
diff --git a/PKGBUILD b/PKGBUILD
index dff0e9a..853481c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -11,9 +11,9 @@ pkgrel=1
 pkgdesc="Fast SQL database server, community edition"
 arch=('x86_64')
 makedepends=('openssl' 'zlib' 'cmake' 'systemd-tools' 'libaio' 'jemalloc'
              'rpcsvc-proto' 'libtirpc' 'icu' 'libedit' 'libevent' 're2'
-             'rapidjson' 'protobuf')
+             'rapidjson')
 license=('GPL')
 url="https://www.mysql.com/products/community/"
 source=("https://cdn.mysql.com/Downloads/MySQL-8.0/${pkgbase}-boost-${pkgver}.tar.gz"
         "my-default.cnf"
@@ -59,8 +59,9 @@ build() {
     -DWITH_LTO=ON \
     -DWITH_JEMALLOC=ON \
     -DWITH_READLINE=ON \
     -DWITH_SYSTEMD=yes \
+    -DWITH_PROTOBUF=bundled \
     -DWITH_UNIT_TESTS=OFF \
     -DPLUGIN_EXAMPLE=NO \
     -DWITHOUT_EXAMPLE_STORAGE_ENGINE=ON \
     -DPLUGIN_FEDERATED=NO \
@@ -138,9 +139,9 @@ package_mysql(){
   backup=("etc/mysql/my.cnf"
           "etc/conf.d/${pkgname}.conf")
   install="${pkgbase}.install"
   depends=('mysql-clients' 'libsasl' 'zlib' 'jemalloc' 'libaio' 'libtirpc' 'icu'
-           'lz4' 'libevent' 'protobuf' 'systemd-libs')
+           'lz4' 'libevent' 'systemd-libs')
   conflicts=('mariadb')
   provides=("mariadb=${pkgver}" "mysql=${pkgver}")
   optdepends=('perl-dbd-mysql: for mysqlhotcopy, mysql_convert_table_format and mysql_setpermission')
   options=('emptydirs')

keoma commented on 2019-10-28 22:37 (UTC)

protobuf 3.10.0-1 breaks mysqld because the file libprotobuf-lite.so.18 has been removed in this version. I had to downgrade it to 3.7.0-1 to make it work again.

Ildar commented on 2019-10-04 11:48 (UTC)

Using the flag -DWITH_SYSTEM_LIBS=OFF during the compilation helped me to fix the problem https://bugs.mysql.com/bug.php?id=95287 "mysql client ignores ~/.editrc. bind "^W" ed-delete-prev-word doesn't work"

rtucek commented on 2019-09-30 12:41 (UTC) (edited on 2019-09-30 12:42 (UTC) by rtucek)

Hi @Muflone,

thank you for maintaining the repo!

What's the intention behind removing mysql_config_editor after the build? It's a very useful CLI utility for storing the credentials. I've prepared a small patch (https://pastebin.com/wtVwRgFt) which prevents removing it. Would you mind consider applying it?

BR Rudi

FrederickZh commented on 2019-08-18 12:57 (UTC) (edited on 2019-08-18 12:59 (UTC) by FrederickZh)

It seems that there are several missing files in this package compared with the official ones for Ubuntu 18.04 amd64. Here's a summary CSV I put together: https://gist.github.com/Frederick888/dbc2b80f176d79dcfbd7fb4bafac178a

The following patch fixes the missing mysqlx headers and mysqlbinlog. Additionally, I moved mysql_upgrade to a separate block as it was removed cos of a different reason; libmysqlclient.a to libmysqlclient since in Ubuntu it's also in libmysqlclient-dev; and imho I don't think removing the compiled binaries in build() is a good practice as it voids the purpose of makepkg flags such as -R, -C (and AUR helpers like yay actually asks users whether a clean build is needed) hence the mkdir part at the beginning. I'm not quite sure why some plugins, e.g. innodb_engine.so, are not even built tho (didn't see them in cmake --build . --target help).

diff --git a/PKGBUILD b/PKGBUILD
index dff0e9a..d128267 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -28,10 +28,9 @@ sha256sums=('d44231316ce30a1d1189125ceed86d3388409778e17d0e3b9a060f532463e29a'
             '8fbedfc2c5fe271ed13217feeceeac00202d2cb135e4283eeee2f9a13d6251af'
             '9e585631cfe95da9d18df6c64fca370c0aff2b2cda5dc29f694579dab9d9f561')

 build() {
-  rm -rf build
-  mkdir build
+  mkdir -p build
   cd build

   cmake "../${pkgbase}-${pkgver}" \
     -DCMAKE_AR=/usr/bin/gcc-ar \
@@ -93,8 +92,11 @@ package_libmysqlclient(){
   for dir in include libmysql libservices
   do
     make -C "${dir}" DESTDIR="${pkgdir}" install
   done
+  install -m 644 -D "${srcdir}/build/plugin/x/generated/mysqlx_ername.h" "${pkgdir}/usr/include/mysqlx_ername.h"
+  install -m 644 -D "${srcdir}/build/plugin/x/generated/mysqlx_error.h" "${pkgdir}/usr/include/mysqlx_error.h"
+  install -m 644 -D "${srcdir}/build/plugin/x/generated/mysqlx_version.h" "${pkgdir}/usr/include/mysqlx_version.h"

   install -m 755 -d "${pkgdir}/usr/bin"
   install -m 755 scripts/mysql_config "${pkgdir}/usr/bin/"
   install -m 755 -d "${pkgdir}/usr/share/man/man1"
@@ -153,8 +155,9 @@ package_mysql(){
   install -m 644 -D "${srcdir}/mysql-ld.so.conf" "${pkgdir}/etc/ld.so.conf.d/${pkgname}.conf"

   # provided by libmysqlclient
   rm "${pkgdir}/usr/bin/mysql_config"
+  rm "${pkgdir}/usr/lib/libmysqlclient.a"
   rm "${pkgdir}/usr/lib/libmysqlclient.so"
   rm "${pkgdir}/usr/lib/libmysqlclient.so.21"
   rm "${pkgdir}/usr/lib/libmysqlclient.so.21.1.17"
   rm "${pkgdir}/usr/lib/libmysqlservices.a"
@@ -166,23 +169,23 @@ package_mysql(){

   # provided by mysql-clients
   rm "${pkgdir}/usr/bin/mysql"
   rm "${pkgdir}/usr/bin/mysqladmin"
-  rm "${pkgdir}/usr/bin/mysqlbinlog"
   rm "${pkgdir}/usr/bin/mysqlcheck"
   rm "${pkgdir}/usr/bin/mysqldump"
   rm "${pkgdir}/usr/bin/mysqlimport"
   rm "${pkgdir}/usr/bin/mysqlshow"
   rm "${pkgdir}/usr/bin/mysqlslap"
-  rm "${pkgdir}/usr/bin/mysql_upgrade"
   rm "${pkgdir}/usr/share/man/man1/mysql.1"
   rm "${pkgdir}/usr/share/man/man1/mysqladmin.1"
-  rm "${pkgdir}/usr/share/man/man1/mysqlbinlog.1"
   rm "${pkgdir}/usr/share/man/man1/mysqlcheck.1"
   rm "${pkgdir}/usr/share/man/man1/mysqldump.1"
   rm "${pkgdir}/usr/share/man/man1/mysqlimport.1"
   rm "${pkgdir}/usr/share/man/man1/mysqlshow.1"
   rm "${pkgdir}/usr/share/man/man1/mysqlslap.1"
+
+  # deprecated
+  rm "${pkgdir}/usr/bin/mysql_upgrade"
   rm "${pkgdir}/usr/share/man/man1/mysql_upgrade.1"

   # not needed
   rm -r "${pkgdir}/usr/mysql-test"

FrederickZh commented on 2019-08-13 17:02 (UTC)

@Muflone Fair enough. Actually I didn't even know MySQL Shell existed until several days ago when I was googling about how connection URIs could be used for CLI. Hope it can get more traction in the future.

Btw, when I was scanning the files, I noticed that usr/lib/libmysqlclient.a is packed into mysql instead of libmysqlclient. Sorry if it's a stupid question but shouldn't it be in the latter?