### Start VMs for Configuration (No Graphics) Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1304-raring.md Boots the installed virtual machines without a graphical interface for configuration. This allows for simultaneous setup if sufficient memory is available. ```bash kvm -m 2048 -hda /kvm/vms/vm-raring-amd64-serial.qcow2 -cdrom /kvm/iso/ubuntu/ubuntu-13.04-server-amd64.iso -boot c -smp 2 -cpu qemu64 -net nic,model=virtio -net user,hostfwd=tcp:127.0.0.1:2279-:22 -nographic kvm -m 2048 -hda /kvm/vms/vm-raring-i386-serial.qcow2 -cdrom /kvm/iso/ubuntu/ubuntu-13.04-server-i386.iso -boot c -smp 2 -cpu qemu64 -net nic,model=virtio -net user,hostfwd=tcp:127.0.0.1:2280-:22 -nographic ``` -------------------------------- ### Start Ubuntu 8.04 VM and Install Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-804-810-and-910.md Starts the Ubuntu 8.04 VM from the installation ISO and configures SSH access. ```bash kvm -m 1024 -hda vm-hardy-i386-serial.qcow2 -cdrom /kvm/ubuntu-8.04.3-server-i386.iso -redir tcp:2229::22 -boot c -smp 2 -cpu qemu32,-nx -net nic,model=virtio -net user -nographic ``` -------------------------------- ### Start VM Installation Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1310-saucy.md Boots the virtual machines from the server install ISO to begin the Ubuntu installation. Ensure you have the correct ISO path. ```bash kvm -m 2048 -hda /kvm/vms/vm-saucy-amd64-serial.qcow2 -cdrom /kvm/iso/ubuntu/ubuntu-13.10-server-amd64.iso -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user,hostfwd=tcp:127.0.0.1:2287-:22 ``` ```bash kvm -m 2048 -hda /kvm/vms/vm-saucy-i386-serial.qcow2 -cdrom /kvm/iso/ubuntu/ubuntu-13.10-server-i386.iso -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user,hostfwd=tcp:127.0.0.1:2288-:22 ``` -------------------------------- ### Install Plugin Example Source: https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/plugin-sql-statements/install-plugin.md This example demonstrates the basic syntax for installing a plugin using the INSTALL PLUGIN statement. Ensure the plugin library is accessible to the MariaDB server. ```sql INSTALL PLUGIN plugin_name SONAME 'plugin_library.so'; ``` -------------------------------- ### Install and Log in to MariaDB Source: https://mariadb.com/docs/server/security/user-account-management/authentication-from-mariadb-10-4.md Install MariaDB server and log in as root. This example shows the initial setup and password setting for the root user. ```bash $ sudo dnf install MariaDB-server $ mariadb -uroot ... MariaDB> set password = password("XH4VmT3_jt"); ``` -------------------------------- ### Start VMs for Installation Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1304-raring.md Boots the virtual machines from the server install ISO to begin the Ubuntu installation. Ensure to use the correct ISO and port forwarding for SSH. ```bash kvm -m 2048 -hda /kvm/vms/vm-raring-amd64-serial.qcow2 -cdrom /kvm/iso/ubuntu/ubuntu-13.04-server-amd64.iso -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user,hostfwd=tcp:127.0.0.1:2279-:22 kvm -m 2048 -hda /kvm/vms/vm-raring-i386-serial.qcow2 -cdrom /kvm/iso/ubuntu/ubuntu-13.04-server-i386.iso -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user,hostfwd=tcp:127.0.0.1:2280-:22 ``` -------------------------------- ### Create and Start Install Testing VM Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-debian/buildbot-setup-for-virtual-machines-debian-4-i386 Creates a new QCOW2 disk image for an installation testing VM and starts it using KVM. ```bash qemu-img create -b vm-debian4-i386-serial.qcow2 -f qcow2 vm-debian4-i386-install.qcow2 kvm -m 2047 -hda /kvm/vms/vm-debian4-i386-install.qcow2 -cdrom /kvm/debian-40r8-i386-netinst.iso -redir 'tcp:2241::22' -boot c -smp 2 -cpu qemu32,-nx -net nic,model=e1000 -net user -nographic ``` -------------------------------- ### Install Plugin Using SQL in /docker-entrypoint-initdb.d Source: https://mariadb.com/docs/server/server-management/automated-mariadb-deployment-and-administration/docker-and-mariadb/adding-plugins-to-the-mariadb-docker-official-image.md Install a plugin during the initial database setup by creating a SQL file with the `INSTALL SONAME` command and placing it in the `/docker-entrypoint-initdb.d` directory. ```bash echo 'INSTALL SONAME "disks";' > my_initdb/disks.sql ``` -------------------------------- ### Setup Fedora VM with MariaDB (Fedora Repo) Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-red-hat/buildbot-setup-for-virtual-machines-fedora-20 This script automates the setup of a Fedora 20 VM using the default Fedora repository. It installs MariaDB and related packages, enables and starts the MariaDB service, and performs a basic database test. ```shell for i in '/kvm/vms/vm-fedora20-i386-serial.qcow2 2291 qemu64' '/kvm/vms/vm-fedora20-amd64-serial.qcow2 2292 qemu64' ; do \ set $i; \ runvm --user=buildbot --logfile=kernel_upgrade_$2.log --base-image=$1 --port=$2 --cpu=$3 "$(echo $1 | sed -e 's/serial/upgrade/')" \ "sudo yum -y update" \ "sudo yum -y install patch tar mariadb-server libtool-ltdl unixODBC Judy" \ "sudo systemctl enable mariadb.service" \ "sudo systemctl start mariadb.service" \ 'mysql -uroot -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t"' ; \ done ``` -------------------------------- ### Boot VMs for Installation Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1404-trusty.md Start KVM virtual machines, booting from the server install ISO, to begin the Ubuntu installation process. Configure network forwarding for SSH access. ```bash kvm -m 2048 -hda /kvm/vms/vm-trusty-amd64-serial.qcow2 \ -cdrom /kvm/iso/ubuntu/trusty-server-amd64.iso \ -boot d -smp 2 -cpu qemu64 \ -net nic,model=virtio \ -net user,hostfwd=tcp:127.0.0.1:2293-:22 kvm -m 2048 -hda /kvm/vms/vm-trusty-i386-serial.qcow2 \ -cdrom /kvm/iso/ubuntu/trusty-server-i386.iso \ -boot d -smp 2 -cpu qemu64 \ -net nic,model=virtio \ -net user,hostfwd=tcp:127.0.0.1:2294-:22 ``` -------------------------------- ### Start VMs for Installation Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-red-hat/buildbot-setup-for-virtual-machines-fedora-20 Launches KVM virtual machines, booting from the Fedora 20 installation ISO, with port forwarding for SSH. ```bash kvm -m 2048 -hda /kvm/vms/vm-fedora20-i386-serial.qcow2 -cdrom /ds413/iso/fedora/Fedora-20-i386-DVD.iso -redir tcp:2291::22 -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user kvm -m 2048 -hda /kvm/vms/vm-fedora20-amd64-serial.qcow2 -cdrom /ds413/iso/fedora/Fedora-20-x86_64-DVD.iso -redir tcp:2292::22 -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user ``` -------------------------------- ### Start VMs for Installation Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-red-hat/buildbot-setup-for-virtual-machines-fedora-16 Launches KVM instances for Fedora 16 installation, booting from the server install ISO and redirecting TCP port 22 for SSH access. ```bash kvm -m 1024 -hda /kvm/vms/vm-fedora16-i386-serial.qcow2 -cdrom /kvm/iso/fedora/Fedora-16-i386-DVD.iso -redir tcp:2263::22 -boot d -smp 2 -cpu qemu32,-nx -net nic,model=virtio -net user ``` ```bash kvm -m 1024 -hda /kvm/vms/vm-fedora16-amd64-serial.qcow2 -cdrom /kvm/iso/fedora/Fedora-16-x86_64-DVD.iso -redir tcp:2264::22 -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user ``` -------------------------------- ### Start VM Installation Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-red-hat/buildbot-setup-for-virtual-machines-centos-62 Launches KVM virtual machines for CentOS 6.2 installation using specified ISOs and port redirection. ```bash kvm -m 1024 -hda /kvm/vms/vm-centos6-amd64-serial.qcow2 -cdrom /kvm/iso/centos/CentOS-6.2-x86_64-bin-DVD1.iso -redir tcp:22255::22 -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user kvm -m 1024 -hda /kvm/vms/vm-centos6-i386-serial.qcow2 -cdrom /kvm/iso/centos/CentOS-6.2-i386-bin-DVD1.iso -redir tcp:22256::22 -boot d -smp 2 -cpu qemu32,-nx -net nic,model=virtio -net user ``` -------------------------------- ### Example START TRANSACTION WITH CONSISTENT SNAPSHOT Usage Source: https://mariadb.com/docs/server/ha-and-performance/standard-replication/enhancements-for-start-transaction-with-consistent-snapshot.md Illustrates how to use the START TRANSACTION and BEGIN statements with the WITH CONSISTENT SNAPSHOT option. ```sql BEGIN WITH CONSISTENT SNAPSHOT; ``` ```sql START TRANSACTION READ ONLY, WITH CONSISTENT SNAPSHOT; ``` -------------------------------- ### Get the Start Point of a LineString Source: https://mariadb.com/docs/server/reference/sql-statements/geometry-constructors/linestring-properties/st_startpoint.md This example demonstrates how to use ST_StartPoint to retrieve the starting point of a LineString. It first creates a LineString from a WKT string and then uses StartPoint to get the first point, displaying it in Well-Known Text format. ```sql SET @ls = 'LineString(1 1,2 2,3 3)'; SELECT AsText(StartPoint(GeomFromText(@ls))); ``` -------------------------------- ### Install Plugin with Options Source: https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/plugin-sql-statements/install-plugin.md This example shows how to install a plugin that requires specific options. Options are provided as a comma-separated list of key-value pairs. ```sql INSTALL PLUGIN plugin_name WITH {option_name=option_value, ...}; ``` -------------------------------- ### Automate VM Setup for Building BSD Bintars Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-freebsd-92.md This script automates the setup of FreeBSD VMs for building BSD bintars. It iterates through VM configurations, starts them, and installs necessary development packages using 'make install clean BATCH=yes'. ```bash for i in '/kvm/vms/vm-freebsd92-amd64-serial.qcow2 2283 qemu64' '/kvm/vms/vm-freebsd92-i386-serial.qcow2 2284 qemu64' ; do \ set $i; \ runvm --user=buildbot --logfile=kernel_$2.log --base-image=$1 --port=$2 --cpu=$3 "$(echo $1 | sed -e 's/serial/build/')" \ "cd /usr/ports/devel/libevent; sudo make install clean BATCH=yes" \ "cd /usr/ports/devel/boost-all; sudo make install clean BATCH=yes" \ "cd /usr/ports/devel/cmake; sudo make install clean BATCH=yes" \ "cd /usr/ports/devel/thrift/; sudo make install clean BATCH=yes" \ "cd /usr/ports/devel/bzr/; sudo make install clean BATCH=yes" \ "cd /usr/ports/devel/bison/; sudo make install clean BATCH=yes" \ "cd /usr/ports/databases/unixODBC; sudo make install clean BATCH=yes" \ "cd /usr/ports/devel/doxygen; sudo make install clean BATCH=yes"; \ done ``` -------------------------------- ### Example odbcinst.ini for MariaDB ODBC Driver Source: https://mariadb.com/docs/connectors/connectors-quickstart-guides/connector-odbc-guide.md This TOML snippet defines the MariaDB ODBC Driver in the odbcinst.ini file, specifying the driver and setup library paths. Adjust the 'Driver' and 'Setup' paths to match your system's installation. ```toml [MariaDB ODBC Driver] Description = MariaDB Connector/ODBC Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so # Adjust path for your system Setup = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so # Adjust path for your system UsageCount = 1 FileUsage = 1 CPTimeout = CPReconnect = ``` -------------------------------- ### Install World Example Database (using gunzip) Source: https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/index-hints-how-to-force-query-plans.md Use this command to create the 'world' database and import its data after decompressing the SQL file with gunzip. ```bash mariadb-admin create world gunzip world.sql.gz ../client/mysql world < world.sql ``` -------------------------------- ### Create and Populate Example Tables Source: https://mariadb.com/docs/server/mariadb-quickstart-guides/mariadb-selecting-data-guide.md Sets up the 'books' and 'authors' tables with sample data for use in SELECT statement examples. ```sql CREATE OR REPLACE TABLE books ( isbn CHAR(20) PRIMARY KEY, title VARCHAR(50), author_id INT, publisher_id INT, year_pub CHAR(4), description TEXT ); CREATE OR REPLACE TABLE authors ( author_id INT AUTO_INCREMENT PRIMARY KEY, name_last VARCHAR(50), name_first VARCHAR(50), country VARCHAR(50) ); INSERT INTO authors (name_last, name_first, country) VALUES ('Kafka', 'Franz', 'Czech Republic'), ('Dostoevsky', 'Fyodor', 'Russia'); INSERT INTO books (title, author_id, isbn, year_pub) VALUES ('The Trial', 1, '0805210407', '1995'), ('The Metamorphosis', 1, '0553213695', '1995'), ('America', 2, '0805210644', '1995'), -- Note: Original data had author_id 2 for 'America', Dostoevsky is author_id 2. ('Brothers Karamozov', 2, '0553212168', ''), ('Crime & Punishment', 2, '0679420290', ''), ('Crime & Punishment', 2, '0553211757', ''), ('Idiot', 2, '0192834118', ''), ('Notes from Underground', 2, '067973452X', ''); ``` -------------------------------- ### Install World Example Database (using zcat) Source: https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/index-hints-how-to-force-query-plans.md Use this command to create the 'world' database and import its data using zcat for compressed files. ```bash mariadb-admin create world zcat world.sql.gz | ../client/mysql world ``` -------------------------------- ### Start Ubuntu 8.10 (Intrepid) i386 VM in Install Mode Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-804-810-and-910.md Starts the Ubuntu 8.10 (Intrepid) i386 VM from the installation ISO in install mode. ```bash kvm -m 1024 -hda vm-intrepid-i386-serial.qcow2 -cdrom /kvm/ubuntu-8.10-server-i386.iso -redir tcp:2231::22 -boot d -smp 2 -cpu qemu32,-nx -net nic,model=virtio -net user ``` -------------------------------- ### Launch Ubuntu VMs for Installation Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1210-quantal.md Start KVM virtual machines booting from the server install ISO. Configure memory, disk image, CD-ROM, CPU, and network forwarding for SSH. ```bash kvm -m 2048 -hda /kvm/vms/vm-quantal-amd64-serial.qcow2 -cdrom /kvm/iso/ubuntu/ubuntu-12.10-server-amd64.iso -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user,hostfwd=tcp:127.0.0.1:2275-:22 ``` ```bash kvm -m 2048 -hda /kvm/vms/vm-quantal-i386-serial.qcow2 -cdrom /kvm/iso/ubuntu/ubuntu-12.10-server-i386.iso -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user,hostfwd=tcp:127.0.0.1:2276-:22 ``` -------------------------------- ### Start Ubuntu 8.10 (Intrepid) amd64 VM in Install Mode Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-804-810-and-910.md Starts the Ubuntu 8.10 (Intrepid) amd64 VM from the installation ISO in install mode. ```bash kvm -m 1024 -hda vm-intrepid-amd64-serial.qcow2 -cdrom /kvm/ubuntu-8.10-server-amd64.iso -redir tcp:2230::22 -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user ``` -------------------------------- ### Example Dockerfile for MariaDB Source: https://mariadb.com/docs/server/server-management/automated-mariadb-deployment-and-administration/docker-and-mariadb/creating-a-custom-container-image.md This Dockerfile demonstrates the basic structure for creating a MariaDB container image. It includes installation, port exposure, metadata labeling, health checking, and the command to start the MariaDB server. ```dockerfile FROM ubuntu:20.04 RUN apt-get update RUN apt-get install -y mariadb-server EXPOSE 3306 LABEL version="1.0" LABEL description="MariaDB Server" HEALTHCHECK --start-period=5m \ CMD mariadb -e 'SELECT @@datadir;' || exit 1 CMD ["mariadbd"] ``` -------------------------------- ### Quick Start: Install MariaDB AI RAG on Ubuntu Source: https://mariadb.com/docs/tools/mariadb-ai-rag/deployment/ubuntu-deployment.md Installs MariaDB, secures it, creates a database, installs the AI RAG package, configures it, and starts the services. ```bash # 1. Install MariaDB sudo apt update && sudo apt install -y mariadb-server mariadb-client sudo systemctl start mariadb && sudo systemctl enable mariadb # 2. Secure MariaDB (set root password during setup) sudo mysql_secure_installation # 3. Create database sudo mariadb -u root -p < /etc/apt/sources.list.d/tmp.list' deb http://ftp.osuosl.org/pub/mariadb/repo/5.1/ubuntu maverick main deb-src http://ftp.osuosl.org/pub/mariadb/repo/5.1/ubuntu maverick main ``` ```bash sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-unauthenticated mariadb-server mariadb-test libmariadbclient-dev ``` ```bash mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t" ``` ```bash sudo rm /etc/apt/sources.list.d/tmp.list ``` ```bash sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y ``` -------------------------------- ### Start Ubuntu 8.10 (Intrepid) amd64 VM and Install Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-804-810-and-910.md Starts the Ubuntu 8.10 (Intrepid) amd64 VM from the installation ISO and configures SSH access. ```bash kvm -m 1024 -hda vm-intrepid-amd64-serial.qcow2 -cdrom /kvm/ubuntu-8.10-server-amd64.iso -redir tcp:2230::22 -boot c -smp 2 -cpu qemu64 -net nic,model=virtio -net user -nographic ``` -------------------------------- ### Initial VM Creation and SSH Setup Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1010-maverick.md Creates a KVM virtual machine, configures SSH access, and sets up the buildbot user with sudo privileges and authorized SSH keys. ```bash kvm -m 1024 -hda vm-maverick-i386-serial.qcow2 -cdrom /kvm/ubuntu-10.10-server-i386.iso -redir tcp:2247::22 -boot c -smp 2 -cpu qemu32,-nx -net nic,model=virtio -net user -nographic ssh -p 2247 localhost ssh -t -p 2247 localhost "mkdir .ssh; sudo addgroup $USER sudo" scp -P 2247 authorized_keys localhost:.ssh/ echo $'Buildbot\n\n\n\n\ny' | ssh -p 2247 localhost 'chmod -R go-rwx .ssh; sudo adduser --disabled-password buildbot; sudo addgroup buildbot sudo; sudo mkdir ~buildbot/.ssh; sudo cp .ssh/authorized_keys ~buildbot/.ssh/; sudo chown -R buildbot:buildbot ~buildbot/.ssh; sudo chmod -R go-rwx ~buildbot/.ssh' scp -P 2247 ttyS0.conf buildbot@localhost: ssh -p 2247 buildbot@localhost 'sudo cp ttyS0.conf /etc/init/; rm ttyS0.conf; sudo shutdown -h now' ``` -------------------------------- ### Create and Install Ubuntu 10.04 amd64 VM Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1004-alpha-i386-and-amd64.md Creates a qcow2 disk image for an amd64 VM and boots it with a Lucid Server ISO for installation. It then reboots into the installed system, redirects SSH, and configures the user and buildbot. ```bash qemu-img create -f qcow2 vm-lucid-amd64-serial.qcow2 8G kvm -m 1024 -hda vm-lucid-amd64-serial.qcow2 -cdrom /kvm/lucid-server-amd64.iso -redir tcp:2238::22 -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user # Install, picking default options mostly, only adding openssh server. kvm -m 1024 -hda vm-lucid-amd64-serial.qcow2 -cdrom /kvm/lucid-server-amd64.iso -redir tcp:2238::22 -boot c -smp 2 -cpu qemu64 -net nic,model=virtio -net user -nographic ssh -p 2238 localhost # edit /boot/grub/menu.lst and visudo, see below ssh -t -p 2238 localhost "mkdir .ssh; sudo addgroup $USER sudo" scp -P 2238 authorized_keys localhost:.ssh/ echo $'Buildbot\n\n\n\n\ny' | ssh -p 2238 localhost 'chmod -R go-rwx .ssh; sudo adduser --disabled-password buildbot; sudo addgroup buildbot sudo; sudo mkdir ~buildbot/.ssh; sudo cp .ssh/authorized_keys ~buildbot/.ssh/; sudo chown -R buildbot:buildbot ~buildbot/.ssh; sudo chmod -R go-rwx ~buildbot/.ssh' scp -P 2238 ttyS0.conf buildbot@localhost: ssh -p 2238 buildbot@localhost 'sudo cp ttyS0.conf /etc/init/; rm ttyS0.conf; sudo shutdown -h now' ``` -------------------------------- ### HTTP GET Request Example Source: https://mariadb.com/docs/galera-cluster/galera-architecture/certification-based-replication.md Example of performing an HTTP GET request with a query parameter. This mechanism can be used to ask specific questions about documentation content. ```HTTP GET https://mariadb.com/docs/galera-cluster/galera-architecture/certification-based-replication.md?ask= ``` -------------------------------- ### Configure Fedora 18 VM for MySQL Upgrade Testing Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-red-hat/buildbot-setup-for-virtual-machines-fedora-18 This script automates the setup of a Fedora 18 VM for MySQL upgrade testing. It updates packages, installs necessary services, enables and starts the MySQL service, and creates a test database. ```shell for i in '/kvm/vms/vm-fedora18-i386-serial.qcow2 2277 qemu64' '/kvm/vms/vm-fedora18-amd64-serial.qcow2 2278 qemu64' ; do \ set $i; \ runvm --user=buildbot --logfile=kernel_$2.log --base-image=$1 --port=$2 --cpu=$3 "$(echo $1 | sed -e 's/serial/upgrade/')" \ "sudo yum -y update" \ "sudo yum -y install patch tar mysql-server libtool-ltdl unixODBC" \ "sudo systemctl enable mysqld.service" \ "sudo systemctl start mysqld.service" \ 'mysql -uroot -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t"' ; \ done ``` -------------------------------- ### Start MariaDB Service and Secure Installation Source: https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/rpm/mariadb-installation-version-10121-via-rpms-on-centos-7.md Starts the newly installed MariaDB service and then runs the security script to set the root password and configure security settings. ```bash # First, start the newly installed MariaDB service systemctl start mariadb # Now, run the security script and follow the prompts mysql_secure_installation ``` -------------------------------- ### Prepare Initial MySQL Install Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-904-i386.md Installs MySQL server and creates a test database with a table and data for upgrade testing. ```bash sudo apt-get install mysql-server-5.1 mysql -uroot -prootpass -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t" ``` -------------------------------- ### Start MaxScale with Relative Base Directory Source: https://mariadb.com/docs/maxscale/maxscale-management/deployment/installation-and-configuration/installing-maxscale-using-a-tarball.md Start MaxScale when installed in a custom directory, using `--basedir=.` to indicate the current directory contains the MaxScale installation. ```bash $ cd maxscale-x.y.z.OS $ bin/maxscale -d --basedir=. ``` -------------------------------- ### Package Creation and Execution Example Source: https://mariadb.com/docs/release-notes/enterprise-server/11.4/whats-new.md Demonstrates the creation and usage of packages and package bodies, now supported with any SQL mode, not just ORACLE. ```sql DELIMITER $$ CREATE OR REPLACE PACKAGE myPkg PROCEDURE p1(); FUNCTION f1() RETURNS INT; END; $$ CREATE OR REPLACE PACKAGE BODY myPkg -- variable declarations DECLARE v1 INT DEFAULT 1; DECLARE v2 INT DEFAULT 10; -- routine declarations PROCEDURE p1() BEGIN SELECT v1, v2; END; FUNCTION f1() RETURNS INT BEGIN RETURN v1; END; -- package initialization SET v1=v1 + 2; END; $$ DELIMITER ; SELECT myPkg.f1(); ``` -------------------------------- ### Create and Configure Ubuntu 10.10 Maverick VM (amd64) Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1010-maverick.md These commands create a qcow2 disk image, initiate the VM installation with serial console redirection, perform the actual installation, and set up SSH access and Buildbot user. ```bash qemu-img create -f qcow2 vm-maverick-amd64-serial.qcow2 8G ``` ```bash kvm -m 1024 -hda vm-maverick-amd64-serial.qcow2 -cdrom /kvm/ubuntu-10.10-server-amd64.iso -redir tcp:2246::22 -boot d -smp 2 -cpu qemu64 -net nic,model=virtio -net user ``` ```bash kvm -m 1024 -hda vm-maverick-amd64-serial.qcow2 -cdrom /kvm/ubuntu-10.10-server-amd64.iso -redir tcp:2246::22 -boot c -smp 2 -cpu qemu64 -net nic,model=virtio -net user -nographic ``` ```bash ssh -p 2246 localhost ``` ```bash ssh -t -p 2246 localhost "mkdir .ssh; sudo addgroup $USER sudo" ``` ```bash scp -P 2246 authorized_keys localhost:.ssh/ ``` ```bash echo $'Buildbot\n\n\n\n\ny' | ssh -p 2246 localhost 'chmod -R go-rwx .ssh; sudo adduser --disabled-password buildbot; sudo addgroup buildbot sudo; sudo mkdir ~buildbot/.ssh; sudo cp .ssh/authorized_keys ~buildbot/.ssh/; sudo chown -R buildbot:buildbot ~buildbot/.ssh; sudo chmod -R go-rwx ~buildbot/.ssh' ``` ```bash scp -P 2246 ttyS0.conf buildbot@localhost: ``` ```bash ssh -p 2246 buildbot@localhost 'sudo cp ttyS0.conf /etc/init/; rm ttyS0.conf; sudo shutdown -h now' ``` -------------------------------- ### Setup MySQL Upgrade Testing VM on Fedora 19 Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-red-hat/buildbot-setup-for-virtual-machines-fedora-19 Use this script to prepare a Fedora 19 virtual machine for MySQL upgrade testing. It updates the system, installs necessary packages, enables and starts the MySQL service, and creates a test database. ```shell for i in '/kvm/vms/vm-fedora19-i386-serial.qcow2 2289 qemu64' '/kvm/vms/vm-fedora19-amd64-serial.qcow2 2290 qemu64' ; do \ set $i; \ runvm --user=buildbot --logfile=kernel_$2.log --base-image=$1 --port=$2 --cpu=$3 "$(echo $1 | sed -e 's/serial/upgrade/')" \ "sudo yum -y update" \ "sudo yum -y install patch tar mysql-server libtool-ltdl unixODBC" \ "sudo systemctl enable mysqld.service" \ "sudo systemctl start mysqld.service" \ 'mysql -uroot -e "create database mytest; use mytest; create table t(a int primary key); insert into t values (1); select * from t"' ; \ done ``` -------------------------------- ### Example of INSTALL SONAME statement Source: https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/plugin-sql-statements/install-soname.md This is a basic example of how to use the INSTALL SONAME statement to load a plugin from a shared library. Ensure the shared library is in a location accessible by the MariaDB server. ```sql INSTALL SONAME 'my_plugin.so'; ``` -------------------------------- ### Install Sphinx on Debian/Ubuntu using .deb packages Source: https://mariadb.com/docs/server/server-usage/storage-engines/sphinx-storage-engine/installing-sphinx.md Installs necessary dependencies and then installs Sphinx from .deb packages. After installation, check the service configuration and start the daemon. ```bash sudo apt-get install unixodbc libpq5 mariadb-client sudo dpkg -i sphinxsearch*.deb # Check /etc/default/sphinxsearch to ensure START=yes # Start with: sudo service sphinxsearch start # Stop with: sudo service sphinxsearch stop ``` -------------------------------- ### Create and Populate Example Tables Source: https://mariadb.com/docs/server/mariadb-quickstart-guides/mariadb-join-guide.md Sets up two tables, t1 and t2, with sample integer data for join operations. ```sql CREATE TABLE t1 ( a INT ); CREATE TABLE t2 ( b INT ); INSERT INTO t1 VALUES (1), (2), (3); INSERT INTO t2 VALUES (2), (4); ``` -------------------------------- ### VM Setup for Building .debs Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1010-maverick.md Automates the setup of virtual machines for building Debian packages. It updates package lists, installs build dependencies for MySQL, and installs necessary development tools. ```bash for i in 'vm-maverick-amd64-serial.qcow2 2246 qemu64' 'vm-maverick-i386-serial.qcow2 2247 qemu32,-nx' ; do \ set $i; \ runvm --user=buildbot --logfile=kernel_$2.log --base-image=$1 --port=$2 --cpu=$3 "$(echo $1 | sed -e 's/serial/build/')" \ "sudo DEBIAN_FRONTEND=noninteractive apt-get update" \ "sudo DEBIAN_FRONTEND=noninteractive apt-get -y build-dep mysql-server-5.1" \ "sudo DEBIAN_FRONTEND=noninteractive apt-get install -y devscripts hardening-wrapper fakeroot doxygen texlive-latex-base ghostscript libevent-dev libssl-dev zlib1g-dev libreadline6-dev" ; \ done ``` -------------------------------- ### Setup and Test Buildbot VM (i386) Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1310-saucy.md This snippet details the procedure for setting up a test instance of a Buildbot virtual machine for the i386 architecture. It covers copying the base image, launching the KVM instance with specific network and CPU settings, logging in as the buildbot user, initiating a shutdown, and deleting the test image. ```bash cp -avi /kvm/vms/vm-saucy-i386-install.qcow2 /kvm/vms/vm-saucy-i386-test.qcow2 kvm -m 1024 -hda /kvm/vms/vm-saucy-i386-test.qcow2 -redir tcp:2288::22 -boot c -smp 2 -cpu qemu64 -net nic,model=virtio -net user -nographic sudo su - buildbot ssh -p 2288 buildbot@localhost sudo shutdown -h now # answer "yes" when prompted exit # the buildbot user rm -v /kvm/vms/vm-saucy-i386-test.qcow2 ``` -------------------------------- ### Initialize New Server with Catalogs Source: https://mariadb.com/docs/server/security/user-account-management/catalogs/starting-with-catalogs.md Use `mariadb_install_db` with the `--catalogs` option to initialize a new MariaDB server with multiple catalogs. The `def` catalog is automatically created. ```bash mariadb_install_db --catalogs="cat1 cat2 cat3" --datadir=/my/data/ ``` -------------------------------- ### Initial VM Setup and SSH Access Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1004-alpha-i386-and-amd64.md This snippet covers the initial steps of launching a KVM virtual machine, setting up SSH access, and configuring the buildbot user with passwordless sudo and SSH keys. ```bash kvm -m 1024 -hda vm-lucid-i386-serial.qcow2 -cdrom /kvm/lucid-server-i386.iso -redir tcp:2239::22 -boot c -smp 2 -cpu qemu32,-nx -net nic,model=virtio -net user -nographic ``` ```bash ssh -p 2239 localhost ``` ```bash ssh -t -p 2239 localhost "mkdir .ssh; sudo addgroup $USER sudo" ``` ```bash scp -P 2239 authorized_keys localhost:.ssh/ ``` ```bash echo $'Buildbot\n\n\n\n\ny' | ssh -p 2239 localhost 'chmod -R go-rwx .ssh; sudo adduser --disabled-password buildbot; sudo addgroup buildbot sudo; sudo mkdir ~buildbot/.ssh; sudo cp .ssh/authorized_keys ~buildbot/.ssh/; sudo chown -R buildbot:buildbot ~buildbot/.ssh; sudo chmod -R go-rwx ~buildbot/.ssh' ``` ```bash scp -P 2239 ttyS0.conf buildbot@localhost: ``` ```bash ssh -p 2239 buildbot@localhost 'sudo cp ttyS0.conf /etc/init/; rm ttyS0.conf; sudo shutdown -h now' ``` -------------------------------- ### Install libaio1 and Upgrade System Source: https://mariadb.com/docs/server/reference/product-development/server-development/tools/buildbot/setup/buildbot-setup-for-virtual-machines/buildbot-setup-for-virtual-machines-ubuntu/buildbot-setup-for-virtual-machines-ubuntu-1204-precise.md Installs the libaio1 package and then upgrades all installed packages to their latest versions. This ensures the system is up-to-date after initial setup. ```bash sudo rm /etc/apt/sources.list.d/tmp.list sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libaio1 sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y ``` -------------------------------- ### Install curl via YUM Source: https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/upgrading/upgrade-paths/mariadb-enterprise-server-10.6/upgrade-to-mariadb-enterprise-server-10.6 Installs the curl utility required for downloading the repository setup script. ```bash sudo yum install curl ``` -------------------------------- ### Starting MariaDB with Custom JVM and Class Paths Source: https://mariadb.com/docs/server/server-usage/storage-engines/connect/connect-table-types/connect-jdbc-table-type-accessing-tables-from-another-dbms.md Example command to start MariaDB with specific JVM path and CONNECT class path for testing. ```bash sudo /usr/local/mysql/bin/mysqld -u root --console --default-storage-engine=myisam --skip-innodb --connect_jvm_path="/usr/lib/jvm/java-8-oracle/jre/lib/i386/server" --connect_class_path="/home/olivier/mariadb/10.1/storage/connect:/media/olivier/SOURCE/mysql-connector-java-6.0.2/mysql-connector-java-6.0.2-bin.jar" ``` -------------------------------- ### Setup for Subquery Examples Source: https://mariadb.com/docs/server/reference/sql-statements/data-manipulation/selecting-data/subqueries/subqueries-and-all.md Sets up two tables, sq1 and sq2, and inserts initial data for demonstrating subquery operations. ```sql CREATE TABLE sq1 (num TINYINT); CREATE TABLE sq2 (num2 TINYINT); INSERT INTO sq1 VALUES(100); ``` -------------------------------- ### Install curl via APT Source: https://mariadb.com/docs/server/architecture/topologies/single-node-topologies/community-server.md Installs the curl utility, which is required for downloading the repository setup script. ```bash $ sudo apt install curl ``` -------------------------------- ### ALTER SEQUENCE Example: Consistent MINVALUE, START, and RESTART Source: https://mariadb.com/docs/server/reference/sql-structure/sequences/alter-sequence.md Provides a valid example of using ALTER SEQUENCE where MINVALUE, START, and RESTART are set to consistent values, avoiding conflicts and ensuring proper sequence behavior. ```sql ALTER SEQUENCE s1 MINVALUE 10 START 10 RESTART 10; ``` -------------------------------- ### Create and Populate Table for LIKE Examples Source: https://mariadb.com/docs/server/reference/sql-functions/string-functions/like.md Sets up a sample table 't1' with day names to demonstrate LIKE operator usage. ```sql CREATE TABLE t1 (d VARCHAR(16)); INSERT INTO t1 VALUES ("Monday"), ("Tuesday"), ("Wednesday"), ("Thursday"), ("Friday"), ("Saturday"), ("Sunday"); ```