mysql script in a command shell


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting mysql script in a command shell
# 1  
Old 08-16-2011
mysql script in a command shell

Hi
can anyone help with my issue here. I new in linux and new in scripting. i was ask to do the following below and i`m getting errors. I managed to create the table and the database. Now i need to add the details in a shell to update the database.
-----------------------------------------------------------------------[code]
Code:
#!/bin/bash

#script that ask for user's name, surname  dob and age

echo "Enter your name"
read name

echo "Enter your surname"
read surname

echo "Enter your dob"
read dob

echo "Enter your age"
read age

age()

{
    age="dob -1901"
}

mysql -hlocalhost -uroot -p 
create database johannesburg;
show databases;
use johannesburg;
show tables;
CREATE TABLE johannesburg1 (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(100), surname VARCHAR(100), dob DATE, age VARCHAR (10),
PRIMARY KEY (id)
);
INSERT into johannesburg1 VALUES ( "$name", "$surname", "$dob", "$age" );


Last edited by pludi; 08-16-2011 at 09:59 AM.. Reason: Please use code tags when inserting code or data
# 2  
Old 08-16-2011
mysql -e is what you are looking for.
Code:
mysql -hlocahost -uroot  -e "
  create table;
  do something else;
  do one more thing;
"


Last edited by Franklin52; 08-17-2011 at 10:59 AM.. Reason: Please use code tags for data and code samples, thank you
This User Gave Thanks to trey85stang For This Post:
# 3  
Old 08-16-2011
since the db and table are already created the first mysql command will finish the job but needs to supply the root passwd. there's more to consider. if non root users are using this you may wish to make the script executable but not readable to everyone(711). if you're actually doing more than the mysql command below you may want to push all of the mysql commands and variables into an sql script and execute command #2 then remove the sql script and #3 basically does the same thing but inside the orig script. you may need to export the variables depending on your method.

Code:
mysql -h localhost -u root -prootpasswd -D johannesburg -e "insert into  johannesburg1 values ('$name','$surname','$dob','$age');"

Code:
mysql -h localhost -u root -prootpasswd -D johannesburg < script.sql

Code:
mysql -h localhost -u root -prootpasswd -D johannesburg << EOF
create database johannesburg;
CREATE TABLE johannesburg1 (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(100), surname VARCHAR(100), dob DATE, age VARCHAR (10),
PRIMARY KEY (id)
);
INSERT into johannesburg1 VALUES ('$name','$surname','$dob','$age');
quit;
EOF

This User Gave Thanks to crimso For This Post:
# 4  
Old 08-17-2011
thank u "crimso" i managed to creat my database. Now when i try to create the tables i get the following error "ERROR 1136 (21S01) at line 7: Column count doesn't match value count at row 1" and the error refers to this line "name VARCHAR(100), surname VARCHAR(100), dob DATE, age VARCHAR (10),
PRIMARY KEY (id)" i`m also trying to work around this issue. Pls assist

---------- Post updated at 05:16 AM ---------- Previous update was at 03:07 AM ----------
Code:
#!/bin/bash

echo "Enter name"
read name
echo "Enter surname"
read surname
echo "Enter dob"
read dob (i`m not sure if this is the issue cause it keeps on referring to this line)
echo "Enter age"
read age

mysql -hlocalhost -uroot -p -D durban << EOF
#create database durban;
use durban;
#CREATE TABLE soweto (
#id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
#name VARCHAR(100), surname VARCHAR(100), dob DATE, age INTERGER (10),
#PRIMARY KEY (id)
#);
INSERT into soweto VALUES ('$name','$surname','$dob','$age');
quit;
EOF

eish now i`m getting the following error "ERROR 1136 (21S01) at line 8: Column count doesn't match value count at row 1"

Last edited by Scott; 08-17-2011 at 08:05 AM.. Reason: Please use code tags
# 5  
Old 08-17-2011
Just try this query.
Code:
insert into soweto(name,surname,dob,age) values ('$name','$surname','$dob','$age');

or
Code:
insert into soweto values(' ','$name','$surname','$dob','$age');

This User Gave Thanks to kannanatlinux For This Post:
# 6  
Old 08-17-2011
thanks man i`m just having small issues to sort out but its all good.
# 7  
Old 08-17-2011
actually the error you're getting is an sql error and not an error related to line 8(read dob) of your script. kannanatlinux's first suggestion should get you around that sql error....
This User Gave Thanks to crimso For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Mysql is not working in shell script

Hi Team, I have created attached script in mysql environment. But there is below error . can you please suggest . Error : Unknown table 'processlist' in finformation_schema #!/bin/bash mysql -u $DBUSER -p$DBPASS -e " select -- * id from information_schema.processlist where... (1 Reply)
Discussion started by: Jewel
1 Replies

2. Shell Programming and Scripting

Shell script - Download - Mysql replace

Hi, I have a video script. it has embedded Youtube videos. I want replace them downloaded version mp4 videos. this script has a mysql table. I want search "url_flv" field on table a youtube link if has a youtube link I want download it this command. I want extract uniq_id field for file... (2 Replies)
Discussion started by: tara123
2 Replies

3. Shell Programming and Scripting

mysql script in a command shell

Hi i`m trying this script to run and i get the following error. Enter your name tman Enter your surname smith -bash: ./500: line 20: unexpected EOF while looking for matching `"' -bash: ./500: line 21: syntax error: unexpected end of file ... (2 Replies)
Discussion started by: mduduzi
2 Replies

4. Shell Programming and Scripting

Using a shell script variable in a mysql query using 'LIKE'

Hello. I am writing a simple script that reads a text file and removes records from a mysql database. The items in the text file are of the format: firstname.middle.lastXXX, where XXX is a 3 digit number. The table has an email field that will match the firstname.middle.last. So, I thought I... (1 Reply)
Discussion started by: bricoleur
1 Replies

5. Shell Programming and Scripting

Mysql command after a SSH connection (Script)

Hi all, Im new at scripting and i need to run a few commands at work every hours so i decide to make a script but on 1 of the steps i have a the follwoing problem: The command i do is this: #!/bin/bash ssh root@asdasd001 'mysql -h A-db-1 -uroot -password --execute "show slave status"'... (3 Replies)
Discussion started by: Aparicio
3 Replies

6. Shell Programming and Scripting

while puting shell variable in mysql command value does not interpolate

port=$(ssh tms6@$x cat /tms6/scripts/start.lc.sh | grep -P '^\/tms6\/bin\/lc' | cut -d' ' -f3 | cut -b 3-6) tpsip=$(ssh tms6@$x cat /tms6/scripts/start.lc.sh | grep -P '^\/tms6\/bin\/lc' | cut -d' ' -f4 | cut -b 9-) # IFS="\n" set -- $port ... (1 Reply)
Discussion started by: rrd1986
1 Replies

7. Shell Programming and Scripting

Passing a variable from shell script to mysql query?

I heard this was possible but from my research I haven't been able to figure it out yet. Seems it should be simple enough. Basically from a high level view I'm trying to accomplish... . $X='grep foo blah.log' then 'mysql command SELECT foo FROM bar WHERE ' . $X or something like that. ... (2 Replies)
Discussion started by: kero
2 Replies

8. Shell Programming and Scripting

Multiple MySql queries in shell script?

Hi guys, i know how to run a single query using mysql embedded in a shell script as follows: `mysql -umyuser -pmypass --host myhost database<<SQL ${query}; quit SQL` However, how would i be able to run several queries within the same connection? The reason for this is i am creating... (3 Replies)
Discussion started by: muay_tb
3 Replies

9. Shell Programming and Scripting

executing mysql load statement from shell script

Hi, I have a piece of shell script which will connect to mysql database and execute a load statement(which will load datas in a file to the database table).The code is working and the data is in the tables. Now my requirement is, i need to grab the output from the load statement... (4 Replies)
Discussion started by: DILEEP410
4 Replies

10. Shell Programming and Scripting

Mysql with shell script

Hi did any books teaching beginner to run mysql using BASH shell? thkx (5 Replies)
Discussion started by: lijiajin
5 Replies
Login or Register to Ask a Question