Package Details: mysql 8.0.17-1

Git Clone URL: https://aur.archlinux.org/mysql.git (read-only)
Package Base: mysql
Description: Fast SQL database server, community edition
Upstream URL: https://www.mysql.com/products/community/
Licenses: GPL
Conflicts: mariadb
Provides: mariadb=8.0.17, mysql=8.0.17
Submitter: Barthalion
Maintainer: Muflone
Last Packager: Muflone
Votes: 67
Popularity: 0.91
First Submitted: 2013-04-25 19:13
Last Updated: 2019-08-04 13:39

Required by (184)

Sources (6)

Latest Comments

1 2 3 4 5 6 ... Next › Last »

keoma commented on 2019-10-30 23:22

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

keoma commented on 2019-10-29 23:02

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

FrederickZh commented on 2019-10-29 04:16

@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

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

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

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

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

@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?

Muflone commented on 2019-08-10 16:53

@FrederickZh I don't think it would be useful for mysql package users to download the source code for mysql-shell, build it and don't install it. It would cause a lot of unuseful work for a majority of users

FrederickZh commented on 2019-08-05 07:09

Sorry if this question has already been answered (I went through several pages of comments without finding any similar ones), but is it possible to ship mysql-shell with this package as well?

I just had a glance at the build instruction of mysql-shell and it seems that it requires both the source code of MySQL and the X protocol client library to compile (actually also the build directory of MySQL, but I suspect it's only needed to locate libmysqlclient and libmysqlxclient). In this case is it better to build MySQL Shell along with this package so that it could be easier to manage?