My personal and professional life
2018-11-28
2018-11-27
Game of authorities
Публикувано от
Georgi D. Sotirov
в
18:30
0
коментара
Етикети: Thoughts
2018-11-15
MySQL Community Data Masking and De-Identification
gen_rnd_string for generation of a random string with given length (only alphabetic characters by default). I've made some test and the results look promising, but I have to experiment more and perhaps generate better data that could eventually pass verifications, because an application using randomly generated data could easily fail if it cannot validate the data. It remains me to implement the function for generation of random data using dictionaries for which I think I could use LOAD DATA INFILE and CREATE TEMPORARY TABLE for loading dictionary.It's just my simple idea of how one could implement data masking and de-identification even in MySQL Community edition and as stored routines, because MySQL's implementation if based on user-defined functions (UDF). I wonder why they chose this approach and here is my take on the possible answers:
- Visibility: A user-defined function has global visibility, so it could be called without proceeding schema name just like any other built-in function. My implementation has to be loaded into a schema and thus each function would have to be called with schema name in front.
- Default arguments: MySQL still doesn't support default arguments for stored routines, but this is possible for user-defined functions as these could be written only "in C or C++ (or another language that can use C calling conventions)". The general purpose masking functions mask_inner and mask_outer accept an optional argument for the masking character. In a stored procedures implementation this could be only a user-defined variable. I'll implement this later.
- Hiding implementation details: User-defined functions confine MySQL's implementation into the shared library binary. The source code of the stored routines could be easily reviewed by a user with enough permissions (e.g. an administrator). To my knowledge MySQL doesn't offer obfuscation utility like Oracle (see Obfuscating PL/SQL Source Code). A side point to this is that the manual also doesn't provide enough details on the possible values by the data generation functions.
- Security: This could be related to how the server is handling the memory for UDF and stored routines calls, but that's too much internals.
- Performance: User-defined functions by presumption should have better performance compared to stored routines, because the former are function calls in natively compiled shared library and the later are interpreted by the server on each invocation.
- 1000 times - 0.28 seconds;
- 10000 times - 3.13 seconds;
- 100000 times - 31.41 seconds;
- 1000000 times - 278.19 seconds.
Публикувано от
Georgi D. Sotirov
в
23:01
1 коментара
Етикети: Development, MySQL
2018-10-23
New development features in MySQL 8.0.13
SQL Default Values now could be also function or expression
- to generate UUID values by default (by using
DEFAULT (uuid_to_bin(uuid()))for example); - to generate default values for geometry data types (by using
DEFAULT (POINT(0,0))or DEFAULT (ST_PointFromText('POINT(42.69751 23.32415)', 4326)) for example); - to generate default values for JSON columns (by using DEFAULT (JSON_ARRAY()) or DEFAULT ('[]') for example); and
- other complex values (like DEFAULT (CURRENT_DATE + INTERVAL 1 DAY) or DEFAULT (PI() * POW(r, 2)) for example) using function or functions in an expression.
CREATE TABLE def_expr (
id INT NOT NULL AUTO_INCREMENT,
uuid_def BINARY(16) DEFAULT (uuid_to_bin(uuid())),
geo_def POINT DEFAULT (Point(0,0)),
geo_def2 GEOMETRY DEFAULT (ST_PointFromText('POINT(42.69751 23.32415)', 4326)),
json_def JSON DEFAULT (JSON_ARRAY()),
json_def2 JSON DEFAULT ('[]') /* this works too */,
tomorrow DATE DEFAULT (CURDATE() + INTERVAL 1 DAY),
radius INT DEFAULT (FLOOR(1 + (RAND() * 10))),
area DECIMAL(10,3) DEFAULT (ROUND(PI() * POW(radius, 2), 3)),
PRIMARY KEY (id),
UNIQUE INDEX id_UNIQUE (id ASC) VISIBLE
);
INSERT INTO def_expr VALUES (); /* x 2 */
SELECT id,
bin_to_uuid(uuid_def) uuid_def,
ST_AsText(geo_def) geo_def,
ST_AsText(geo_def2) geo_def2,
json_def, json_def2,
tomorrow, radius, area
FROM def_expr;
+----+--------------------------------------+------------+--------------------------+----------+-----------+------------+--------+---------+
| id | uuid_def | geo_def | geo_def2 | json_def | json_def2 | tomorrow | radius | area |
+----+--------------------------------------+------------+--------------------------+----------+-----------+------------+--------+---------+
| 1 | a2747ee0-d6ee-11e8-b02e-02004c4f4f50 | POINT(0 0) | POINT(42.69751 23.32415) | [] | [] | 2018-10-24 | 2 | 12.566 |
| 2 | a2ff920b-d6ee-11e8-b02e-02004c4f4f50 | POINT(0 0) | POINT(42.69751 23.32415) | [] | [] | 2018-10-24 | 10 | 314.159 |
+----+--------------------------------------+------------+--------------------------+----------+-----------+------------+--------+---------+
2 rows in set (0.0021 sec)
SQL Functional Indexes
id INT NOT NULL AUTO_INCREMENT,
ipaddr4 INT UNSIGNED /* 4 bytes */,
PRIMARY KEY (id),
UNIQUE INDEX id_UNIQUE (id ASC) VISIBLE,
INDEX func_idx ((INET_NTOA(ipaddr4)))
);
SELECT * FROM func_index WHERE ipaddr4 = INET_ATON('192.168.1.1');
Option to Disallow Tables without a Primary Key
ER_TABLE_WITHOUT_PK).ERROR: 3750: Unable to create a table without PK, when system variable 'sql_require_primary_key' is set. Add a PK to the table or unset this variable to avoid this message. Note that tables without PK can cause performance problems in row-based replication, so please consult your DBA before changing this setting.
Geometry transformation
A few words on upgrading (from 8.0.12)
2018-10-23T12:47:49.627732Z 1 [ERROR] [MY-013235] [Server] Error in parsing View 'db'.'aView' during upgrade. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc' at line 1
Публикувано от
Georgi D. Sotirov
в
22:32
0
коментара
Етикети: Development, MySQL
2018-10-21
First impressions from Oracle XE 18c trying to install it on Fedora 28/29 and Oracle Linux 7
Fedora 28/29
[root@fedora ~]# yum -y localinstall /mnt/vm/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
Last metadata expiration check: 2:01:29 ago on Sun 21 Oct 2018 11:07:06 AM EEST.
Error:
Problem: conflicting requests
- nothing provides compat-libcap1 needed by oracle-database-preinstall-18c-1.0-1.el7.x86_64
Hmm... I'm just missing a required package compat-libcap1, but why it's not installed automatically?
[root@fedora ~]# yum install compat-libcap1
Last metadata expiration check: 1:24:06 ago on Sun 21 Oct 2018 11:07:06 AM EEST.
No match for argument: compat-libcap1
Error: Unable to find a match
[root@fedora ~]# yum -y localinstall /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm
Last metadata expiration check: 2:16:29 ago on Sun 21 Oct 2018 11:07:06 AM EEST.
Dependencies resolved.
==========================================================
Package Arch Version Repository Size
==========================================================
Installing:
oracle-database-xe-18c x86_64 1.0-1 @commandline 2.4 G
Transaction Summary
==========================================================
Install 1 Package
Total size: 2.4 G
Installed size: 5.2 G
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Error: Transaction check error:
package oracle-database-xe-18c-1.0-1.x86_64 does not verify: no digest
installing package oracle-database-xe-18c-1.0-1.x86_64 needs 2472MB on the / filesystem
Error Summary
-------------
Disk Requirements:
At least 2472MB more space needed on the / filesystem.
To overcome this I used the following command. But to make it work I had to install also libnsl (i.e. dnf install libnsl) and increase the disk space once more. Apparently, the installation of the RPM requires about 5.2 GB.
[root@fedora ~]# rpm -i --nodigest /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm
warning: /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure Oracle Database XE, optionally modify the parameters in '/etc/sysconfig/oracle-xe-18c.conf' and then execute '/etc/init.d/oracle-xe-18c configure' as root.
Then, it's time to configure. For the creation of the database 4.5 GB more disk space is necessary.
[root@fedora ~]# /etc/init.d/oracle-xe-18c configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database XE.
[WARNING] [DBT-11209] Current available memory is less than the required available memory (796MB) for creating the database.
CAUSE: Following nodes do not have required available memory :
Node:fedora Available memory:471.8672MB (483192.0KB)
Enter SYS user password:
*************
Enter SYSTEM user password:
*************
Enter PDBADMIN User Password:
**************
Prepare for db operation
7% complete
Copying database files
29% complete
Creating and starting Oracle instance
30% complete
31% complete
34% complete
38% complete
41% complete
43% complete
Completing Database Creation
47% complete
50% complete
Creating Pluggable Databases
54% complete
71% complete
Executing Post Configuration Actions
93% complete
Running Custom Scripts
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/XE.
Database Information:
Global Database Name:XE
System Identifier(SID):XE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/XE/XE.log" for further details.
Connect to Oracle Database using one of the connect strings:
Pluggable database: fedora:1539/XEPDB1
Multitenant container database: fedora:1539
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE
Oracle Linux Server 7.5
[root@oracle ~]# yum -y localinstall /mnt/vm/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
Loaded plugins: ulninfo
Examining /mnt/vm/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm: oracle-database-preinstall-18c-1.0-1.el7.x86_64
Marking /mnt/vm/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-database-preinstall-18c.x86_64 0:1.0-1.el6 will be installed
...
--> Processing Dependency: compat-libcap1 for package: oracle-database-preinstall-18c-1.0-1.el6.x86_64
...
Dependencies Resolved
====================================================================
Package Arch Version Repository Size
====================================================================
Installing:
oracle-database-preinstall-18c x86_64 1.0-1.el7 /oracle... 55 k
Installing for dependencies:
...
compat-libcap1 x86_64 1.10-7.el7 ol7_latest 17 k
...
Install 1 Package (+37 Dependent packages)
...
Installed:
oracle-database-preinstall-18c.x86_64 0:1.0-1.el7
Dependency Installed:
compat-libcap1.x86_64 0:1.10-7.el7
...
Complete!
[root@oracle ~]# yum -y localinstall /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm
Loaded plugins: ulninfo
Examining /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm: oracle-database-xe-18c-1.0-1.x86_64
Marking /mnt/vm/oracle-database-xe-18c-1.0-1.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-database-xe-18c.x86_64 0:1.0-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================
Package Arch Version Repository Size
========================================================
Installing:
oracle-database-xe-18c x86_64 1.0-1 /oracle... 5.2 G
Transaction Summary
========================================================
Install 1 Package
Total size: 5.2 G
Installed size: 5.2 G
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : oracle-database-xe-18c-1.0-1.x86_64 1/1
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure Oracle Database XE, optionally modify the parameters in '/etc/sysconfig/oracle-xe-18c.conf' and then execute '/etc/init.d/oracle-xe-18c configure' as root.
Verifying : oracle-database-xe-18c-1.0-1.x86_64 1/1
Installed:
oracle-database-xe-18c.x86_64 0:1.0-1
Complete!
[root@oracle ~]# /etc/init.d/oracle-xe-18c configure
The location '/opt/oracle' specified for database files has insufficient space.
Database creation needs at least '4.5GB' disk space.
Specify a different database file destination that has enough space in the configuration file '/etc/sysconfig/oracle-xe-18c.conf'.
[root@oracle ~]# /etc/init.d/oracle-xe-18c configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database XE.
Enter SYS user password:
*************
Enter SYSTEM user password:
***************
Enter PDBADMIN User Password:
***********
Prepare for db operation
7% complete
Copying database files
29% complete
Creating and starting Oracle instance
30% complete
31% complete
34% complete
38% complete
41% complete
43% complete
Completing Database Creation
47% complete
50% complete
Creating Pluggable Databases
54% complete
71% complete
Executing Post Configuration Actions
93% complete
Running Custom Scripts
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/XE.
Database Information:
Global Database Name:XE
System Identifier(SID):XE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/XE/XE.log" for further details.
Connect to Oracle Database using one of the connect strings:
Pluggable database: oracle.sotirov-bg.net/XEPDB1
Multitenant container database: oracle.sotirov-bg.net
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE
Even after successful installation and configuration there are few manual steps necessary:
- Set environment variables. For this I just added the following to /etc/profile:
export ORACLE_SID=XE
pathmunge $ORACLE_HOME/bin after
- Enable database start at system boot. For this I used the default script at /etc/init.d/oracle-xe-18c and executed one of the following:
systemctl enable oracle-xe-18c
- Enable access over the network. For this it's necessary to allow the default listener port 1521 on the firewall:
systemctl reload firewalld
Time to connect to the database:
[root@oracle ~]# sqlplus sys/password@//localhost:1521/XE as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Sun Oct 21 19:16:35 2018
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL>
Публикувано от
Georgi D. Sotirov
в
23:17
4
коментара
2018-08-22
LibreOffice 6.1 and named parameters substitution
SELECT id, name FROM persons
- The data content could not be loaded.
- SQL Status: 07009 Invalid descriptor index.
- You tried to set a parameter at position '1' but there is/are only '0' parameter(s) allowed. One reason may be that the property "ParameterNameSubstitution" is not set to TRUE in the data source.
Base
- The ODBC, JDBC and Firebird SDBC drivers/bridges previously applied named parameter substitution (for ODBC and JDBC: when enabled) to all SQL commands, including those that were tagged in the GUI as "execute SQL command directly", thereby not preserving the SQL command exactly as typed. Named parameter substitution now is applied only to SQL queries that are generated from a LibreOffice SQL parse tree, leaving "execute SQL command directly" commands completely untouched.
SELECT name FROM persons WHERE id = ?
Or in other words write the named parameter explicitly in the query.
Публикувано от
Georgi D. Sotirov
в
21:15
1 коментара
Етикети: LibreOffice, MySQL
2018-07-11
Why loading data with MySQL Workbench is so slow?
- first, to select a local file;
- then, to chose destination - either an existing table (and truncate it if necessary) or a new one;
- then, to configure settings (e.g. CSV options like line and column separators and enclosure character), file encoding and column mappings;
- finally, to start the import and watch for errors (a message is printed for each line from the input file).
- LOAD DATA INFILE statement requires the file to be available to the server (i.e. on a local file system accessible to the server). However, with LOCAL keyword the client could transfer the file to the server, so that the server could read it. The overhead in this case would be the transfer of the file over the network. This however requires that both server and client have local data loading capabilities enabled (for server see
local_infilesystem variable and for client it's a compile timeENABLED_LOCAL_INFILECMake option). So although I have this capability enabled on the server apparently it's disabled in the MySQL client used by Workbench, because trying to execute LOAD DATA INFILE with the LOCAL keyword gives Error Code: 1148. The used command is not allowed with this MySQL version (see more in Security Issues with LOAD DATA LOCAL). - Using INSERT statement with multiple
VALUESlists to insert many rows at once would not provide Workbench with the possibility to give information for each processed line from the input file.
If I'm right for the above, then I would expect the data import log in MySQL Workbench to be more advanced. First of all, no line information is printed, so the messages "Data import" (successful?) and various possible errors are useless in determining the problematic line. I had to copy the log and index the messages in an external text editor in order to identify the problem in the data file. Then, I'd like to have information only for errors (e.g. some kind of filtering). There is a progress bar, but without any numbers - I think a message like "Processing line X of NB_LNS_IN_FILE" would be quite useful, but this would require counting the lines in advance. There is also no option to save the import log and copying it requires scrolling (i.e. no Ctrol+A or Select everything exists as an option).
Публикувано от
Georgi D. Sotirov
в
23:43
0
коментара
Етикети: Development, MySQL
2018-06-12
Is it time for Slackware 15?
- Base system:
- Linux Kernel 4.14 LTS;
- GNU C Library 2.27;
- Servers:
- Postfix 3.3 (replacing Sendmail as MTA) and Dovecot 2.3 (replacing imapd as IMAP daemon);
- Apache 2.4.33 (with HTTP/2 support);
- ProFTPD 1.3.6 (with mod_sftp and mod_facl support);
- Samba 4.6;
- MariaDB 10.3.7 (very nice given what I recently wrote about new functionalities);
- Bind 9.11, dhcp 4.3.4, ntp 4.2.8p11 (now running as ntp:ntp) and more;
- Development:
- GNU's Compiler Collection 7.3 and LLVM 6.0;
- Perl 5.26, PHP 7.2, Python 3.6, Ruby 2.5 and Rust 1.26;
- Git 2.17 and Mercurial 4.5;
- GUI:
- X.Org 1.20;
- KDE 4.14.36 (I was hoping for Plasma 5.x though);
- SeaMonkey 2.49, Firefox 59.0 and Thunderbird 52.8;
- GTK+ applications such as Pidgin 2.13, Gimp 2.10, etc.
Публикувано от
Georgi D. Sotirov
в
20:36
0
коментара
2018-05-30
First attempts with in-place upgrade from MySQL 5.7 to 8.0
- First attempt:
2018-05-30T16:42:28.727435Z 1 [ERROR] [MY-012526] [InnoDB] InnoDB: Upgrade after a crash is not supported. This redo log was created with MySQL 5.7.22. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html
2018-05-30T16:42:28.727509Z 1 [ERROR] [MY-012930] [InnoDB] InnoDB: Plugin initialization aborted with error Generic error.
2018-05-30T16:42:29.228125Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2018-05-30T16:42:29.228520Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2018-05-30T16:42:29.228554Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-05-30T16:42:29.235976Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.11) Source distribution.
- Second attempt:
2018-05-30T16:53:08.332393Z 0 [Warning] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001287 - 'validate password plugin' is deprecated and will be removed in a future release. Please use validate_password component instead
InnoDB MEMCACHED: Memcached uses atomic increment
InnoDB_Memcached: Unable to open table 'innodb_memcache/containers'
InnoDB_Memcached: Please create config table'containers' in database 'innodb_memcache' by running 'innodb_memcached_config.sql. error Table not found'
Failed to initialize instance. Error code: 13
2018-05-30T16:53:13.256478Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2018-05-30T16:53:13.257272Z 0 [ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: Address already in use
2018-05-30T16:53:13.257283Z 0 [ERROR] [MY-010257] [Server] Do you already have another mysqld server running on port: 3306 ?
2018-05-30T16:53:13.257298Z 0 [ERROR] [MY-010119] [Server] Aborting
InnoDB_Memcached: Memcached plugin is still initializing. Can't shut down it.
2018-05-30T16:53:29.161133Z 0 [Warning] [MY-011068] [Server] The syntax 'validate password plugin' is deprecated and will be removed in a future release. Please use validate_password component instead.
2018-05-30T16:53:30.304586Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.11) Source distribution.
- Third attempt:
2018-05-30T17:04:57.523116Z 0 [Warning] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001287 - 'validate password plugin' is deprecated and will be removed in a future release. Please use validate_password component instead
2018-05-30T17:04:57.630947Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2018-05-30T17:04:57.633668Z 0 [ERROR] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001146 - Table 'mysql.component' doesn't exist
2018-05-30T17:04:57.633699Z 0 [Warning] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-003543 - The mysql.component table is missing or has an incorrect definition.
2018-05-30T17:04:57.633776Z 0 [ERROR] [MY-011071] [Server] unknown option '--secure-auth'
2018-05-30T17:04:57.633787Z 0 [Warning] [MY-010952] [Server] The privilege system failed to initialize correctly. If you have upgraded your server, make sure you're executing mysql_upgrade to correct the issue.
2018-05-30T17:04:57.633840Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-05-30T17:04:58.636827Z 0 [Warning] [MY-011068] [Server] The syntax 'validate password plugin' is deprecated and will be removed in a future release. Please use validate_password component instead.
- Fourth attempt:
- Fifth attempt:
Yep, I forgot that query cache is removed too...
Solution: Remove query_cache_type and query_cache_size options from configuration file as Query Cache was removed in MySQL 8.
- Sixth attempt:
2018-05-30T17:11:19.333818Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2018-05-30T17:11:19.335972Z 0 [ERROR] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001146 - Table 'mysql.component' doesn't exist
2018-05-30T17:11:19.336010Z 0 [Warning] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-003543 - The mysql.component table is missing or has an incorrect definition.
2018-05-30T17:11:19.348988Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.user].
2018-05-30T17:11:19.349014Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.db].
2018-05-30T17:11:19.349020Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.tables_priv].
2018-05-30T17:11:19.349026Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.columns_priv].
2018-05-30T17:11:19.349031Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.procs_priv].
2018-05-30T17:11:19.349035Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.proxies_priv].
2018-05-30T17:11:19.352944Z 0 [ERROR] [MY-013143] [Server] Column count of mysql.user is wrong. Expected 49, found 45. The table is probably corrupted
2018-05-30T17:11:19.352980Z 0 [Warning] [MY-010966] [Server] ACL table mysql.role_edges missing. Some operations may fail.
2018-05-30T17:11:19.352987Z 0 [Warning] [MY-010966] [Server] ACL table mysql.default_roles missing. Some operations may fail.
2018-05-30T17:11:19.352992Z 0 [Warning] [MY-010966] [Server] ACL table mysql.global_grants missing. Some operations may fail.
2018-05-30T17:11:19.352997Z 0 [Warning] [MY-010966] [Server] ACL table mysql.password_history missing. Some operations may fail.
2018-05-30T17:11:19.353420Z 0 [ERROR] [MY-010965] [Server] Missing system table mysql.global_grants; please run mysql_upgrade to create it.
2018-05-30T17:11:19.365069Z 0 [Warning] [MY-010727] [Server] System table 'func' is expected to be transactional.
2018-05-30T17:11:19.366847Z 0 [Warning] [MY-010405] [Repl] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.
2018-05-30T17:11:19.366874Z 0 [ERROR] [MY-010422] [Repl] Error in checking mysql.slave_master_info repository info type of TABLE.
2018-05-30T17:11:19.368238Z 0 [ERROR] [MY-010415] [Repl] Error creating master info: Error checking repositories.
2018-05-30T17:11:19.368273Z 0 [ERROR] [MY-010426] [Repl] Slave: Failed to initialize the master info structure for channel ''; its record may still be present in 'mysql.slave_master_info' table, consider deleting it.
2018-05-30T17:11:19.368280Z 0 [ERROR] [MY-010529] [Repl] Failed to create or recover replication info repositories.
2018-05-30T17:11:19.373821Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.11' socket: '/var/lib/mysql/mysqld57.sock' port: 3316 Source distribution.
Публикувано от
Georgi D. Sotirov
в
22:51
0
коментара
2018-05-28
MariaDB 10.3 adds even more development features than MySQL 8.0
- System-versioned tables (a.k.a. AS OF);
- Aggregate stored functions (CREATE AGGREGATE FUNCTION and FETCH GROUP NEXT ROW inside loops);
- FOR loop (FOR ... DO ... END FOR statement and FOR ... LOOP ... END LOOP statement in sql_mode=ORACLE, see MDEV-10581 and MDEV-12098);
- Sequences (as alternative to AUTO INCREMENT for "more control of how the numbers are generated");
- INTERSECT and EXCEPT set operations;
- ROW data type (for variables representing group of fields - i.e. rows or records - in stored routines);
- TYPE OF and ROW TYPE OF anchored data types (for variables representing columns or rows in stored routines);
- DELETE and UPDATE statements based on a subquery on the same table;
- Stored packages (with Oracle-like CREATE PACKAGE and CREATE PACKAGE BODY statements in sql_mode=ORACLE).
| Features | MariaDB | MySQL | Standard | |
|---|---|---|---|---|
| SQL | Modify table data based on subquery on the same table | 10.3.2 (2017-11-09) | n/a | |
EXCEPT or MINUS and INTERSECT set operators | 10.3.0 (2017-04-16) | n/a | SQL:2003 | |
Temporal queries (AS OF) | 10.3.4 (2018-01-18) | n/a | SQL:2011 | |
| DDL | CHECK constraints | 10.2.1 (2016-07-04) | n/a | SQL:1999 |
| Partitioning of tables with foreign keys | n/a | n/a | ||
Temporal tables (WITH SYSTEM VERSIONING) | 10.3.4 (2018-01-18) | n/a | SQL:2011 | |
CREATE OR REPLACE for tables, triggers and stored routines | 10.0.8 (2014-02-10), 10.1.4 (2015-04-13) and 10.1.3 (2015-03-02) | n/a | ||
| Enable/disable for triggers | n/a | n/a | ||
| Sequences | 10.3.0 (2017-04-16) | n/a | SQL:2003 | |
A working schema rename (i.e. RENAME {DATABASE | SCHEMA}) statement | n/a | n/a | ||
| Views | Saving of the exact view statement in the server | n/a | n/a | n/a |
Fully updatable views with INSTEAD OF triggers | n/a | n/a | SQL:2008 | |
| Materialized views | n/a | n/a | ||
| Stored routines | Default arguments | n/a | n/a | |
FOR loop | 10.3.3 (2017-12-23) | n/a | ||
| Anonymous code blocks (or compound statements outside routines) | 10.1.1 (2014-10-17) | n/a | ||
| Records, column and row anchored types | 10.3.0 (2017-04-16) | n/a | ||
| Stored modules or packages | 10.3.5 (2018-02-26) | n/a | ||
| Statement and schema level triggers | n/a | n/a | ||
| Debugging facilities | n/a | n/a | n/a | |
| External routines in JavaScript, Perl, PHP, etc. | n/a | n/a | ||
Публикувано от
Georgi D. Sotirov
в
23:10
0
коментара
Етикети: Development, MariaDB, MySQL




