Re: Variable Expansion Using MySQL Client and .sql Files
Simple - brilliant. I've modified to cat a temporary script... 1) cat the file as suggested: cat ~/payload/scripts/create_mysqldb.sql EOF ###--- ### Display the current user ###--- create database puppet; ###--- ### Display all default accounts ###--- USE puppet; ###--- ### Remove anonymous accounts ###--- GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON puppet.* TO 'admin'@'localhost' IDENTIFIED BY '$PASSWD_PRIV_ROOT'; (variables are expanded) ###--- ### Verify new admin account was added ###--- SELECT user,Host,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Alter_priv from mysql.db; EOF 2) Execute the script 3) Remove the script rm -f ~/payload/scripts/create_mysqldb.sql It is often the simplest things that are most beautiful. Thanks for pulling my head out :D TT On 07/29/2010 03:19 PM, Travis Ard wrote: mysqlEOF GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON concrete5.db TO 'admin'@'localhost' IDENTIFIED BY '$PASSWD_PRIV_ROOT'; EOF -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org
Re: Automate Install/Configuration of MySQL on Linux
To answer both emails... My first install is Puppet :) 1) I have many clients (schools with Macs/Linux) that could use this package. This is in the works - good call. For the sake of DRP (Disaster Recovery Planning) I automate all of my installs on the 1% off-chance that my backups are partially fouled for some reason. 2) I used the .sql file that you recommended and wow - it's so much easier than expect. Once I had the right key-words (mysql .sql script) Google returned the right pages: 4.5.1.4. Executing SQL Statements from a Text File http://dev.mysql.com/doc/refman/5.0/en/batch-commands.html The problem I have now is variable substitution. But, that's another thread. Thanks guys, TT On 07/27/2010 11:40 PM, Andrés Tello wrote: just place all your sql sentences in a file, setup the database and then use: mysql -uroot -hlocalhost file_with_allsql_you_need.sql or cat file_file_with_allsql_you_need.sql | mysql -u root -hlocalhost and you are done. On Tue, Jul 27, 2010 at 3:56 PM, Todd E Thomas todd_...@ssiresults.com mailto:todd_...@ssiresults.com wrote: I'm looking for automation direction... I've found many packages that sit on top of MySQL. For the purposes of consistency I'd like to automate these installs. I've been able to automate the install and configuration of everything except the mysql part. I'm using CentOS 5.5. Installing/verifying is no big deal. It's the MySQL configuration that's holding me up. Basically I've created an expect script. It works 99% but it's a PITA to finish. Here's what I'd like to accomplish: *Set the default admin password # mysqladmin -u root password 'root-password' *login to mysql mysql mysql -u root -p *Drop the anonymous accounts mysql DELETE FROM mysql.user WHERE user = ''; *Sync all of the root passwords mysql UPDATE mysql.user SET Password = PASSWORD('root-password') WHERE User = 'root'; *Remove the test database: mysql drop database test; In another script I would like to create databases for specific packages. EG: Concrete5, for example needs: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON concrete5.db TO 'admin'@'localhost' IDENTIFIED BY 'admin-password'; If there is a better way to do this than using expect I would greatly appreciate any pointers in the right direction. Bash is comfortable for me and perl is within reach. I'm not much versed in anything else right now. -- Thanks for the assist, Todd E Thomas It's a frail music knits the world together. -Robert Dana -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql?unsub=mr.crip...@gmail.com
Variable Expansion Using MySQL Client and .sql Files
Hey all, I've found many packages that sit on top of MySQL for various clients. For the purposes of consistency I'd like to automate these installs. I've been directed towards using .sql files and they work great. The trouble I'm having now is that I would like to secure the installation but variable expansion isn't clicking for me. My setup is fairly straight-forward: I have a single installer script that calls all other scripts. This is how it works: 1) Source in all global environment variables from a working file: 1_GLOBAL_ENV.sh 2) execute script to create mysql db 3) secure mysql . /root/payload/1_GLOBAL_ENV.sh ... ###--- ### Configure MySQL ###--- set -x mysql -v ${INST_SCRIPTS}/mysqld/secure_mysqld.sql ... mysql -v ${INST_SCRIPTS}/mysqld/create_db.sql ... --- The create_db.sql should be similar to this: Concrete5, for example needs: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON concrete5.db TO 'admin'@'localhost' IDENTIFIED BY '$PASSWD_PRIV_ROOT'; --- The secure_mysqld.sql script is fairly simple as well: # Display the current user: select user(); # Display all default accounts: SELECT User,Host,password FROM mysql.user; # Remove anonymous accounts: DELETE FROM mysql.user WHERE user = ''; # Display all remaining accounts: SELECT User,Host,password FROM mysql.user; # Sync root passowrds: UPDATE mysql.user SET Password = PASSWORD('$PASSWD_PRIV_ROOT') WHERE User = 'root'; exit --- It all works pretty well. Variable expansion is the problem. For now all of my other scripts substitute $PASSWD_PRIV_ROOT (from my 1_GLOBAL_ENV.sh) for the actual password. The *.sql scripts do not. If anyone can shed some light on this I would appreciate the help. -- Thanks for the assist, Todd E Thomas C: 515.778.6913 It's a frail music knits the world together. -Robert Dana -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org
Automate Install/Configuration of MySQL on Linux
I'm looking for automation direction... I've found many packages that sit on top of MySQL. For the purposes of consistency I'd like to automate these installs. I've been able to automate the install and configuration of everything except the mysql part. I'm using CentOS 5.5. Installing/verifying is no big deal. It's the MySQL configuration that's holding me up. Basically I've created an expect script. It works 99% but it's a PITA to finish. Here's what I'd like to accomplish: *Set the default admin password # mysqladmin -u root password 'root-password' *login to mysql mysql mysql -u root -p *Drop the anonymous accounts mysql DELETE FROM mysql.user WHERE user = ''; *Sync all of the root passwords mysql UPDATE mysql.user SET Password = PASSWORD('root-password') WHERE User = 'root'; *Remove the test database: mysql drop database test; In another script I would like to create databases for specific packages. EG: Concrete5, for example needs: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON concrete5.db TO 'admin'@'localhost' IDENTIFIED BY 'admin-password'; If there is a better way to do this than using expect I would greatly appreciate any pointers in the right direction. Bash is comfortable for me and perl is within reach. I'm not much versed in anything else right now. -- Thanks for the assist, Todd E Thomas It's a frail music knits the world together. -Robert Dana -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org