why i cant change mysql root password from a script? [closed] - bash

Closed. This question is not about programming or software development. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 20 hours ago.
Improve this question
i want to run this script for some mariadb configuration on my docker container : \
service mysql start
sed -i "s/127.0.0.1/0.0.0.0/" /etc/mysql/mariadb.conf.d/50-server.cnf
mysql -e "DELETE FROM mysql.user WHERE User='';"
mysql -e "CREATE DATABASE newdb ;"
mysql -e "CREATE USER newuser IDENTIFIED BY 'usery';"
mysql -e "GRANT ALL PRIVILEGES ON newdb.* TO newuser;"
mysql -e "ALTER USER 'root'#'localhost' IDENTIFIED BY 'rooty';"
mysql -e "FLUSH PRIVILEGES;"
but i got this problem :
ERROR 1045 (28000): Access denied for user 'root'#'localhost' (using password: NO)
from the:
mysql -e "ALTER USER 'root'#'localhost' IDENTIFIED BY 'rooty';"
line but when i execute it manualy it works fine
ps: when i run it from the script it show the error but it change the root password as well\
the script :
service mysql start
sed -i "s/127.0.0.1/0.0.0.0/" /etc/mysql/mariadb.conf.d/50-server.cnf
mysql -e "DELETE FROM mysql.user WHERE User='';"
mysql -e "CREATE DATABASE newdb ;"
mysql -e "CREATE USER newuser IDENTIFIED BY 'usery';"
mysql -e "GRANT ALL PRIVILEGES ON newdb.* TO newuser;"
#-------------------------------------------------------------------------
#this is command is for changing root password from blank to 'rooty'
mysql -e "ALTER USER 'root'#'localhost' IDENTIFIED BY 'rooty';"
#-------------------------------------------------------------------------
mysql -e "FLUSH PRIVILEGES;"```

Related

Mamp: import large database

I'm importing a large drupal database to my mac using mamp and I keep finding errors, the phpmyadmin can't import the database. can anyone help me?
Importing a large database through phpmyadmin is not recommended (it will typically hangup forever). It's much more efficient to use the command line through the Terminal.
First, make sure you can connect to your database from the command line with one of the following commands:
1/ If your root password isn't set:
mysql -u root
2/ or if you have a root password:
mysql -u root -p
3/ or if you have a specific username and password:
mysql -u username -p
If one of those commands execute correctly, you're good to go to the next step.
Notice you can exit the mysql interactive session anytime with entering:
exit
List your databases:
SHOW databases;
If you don't have your database listed here, you will need to create it:
CREATE DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
Then select your database:
USE database_name;
Finally, import the data from your sql file:
SOURCE "path/to/your/file.sql"
Second method (it suppose your database is already created)
mysql -u username -p database_name < path/to/your/file.sql

How do I connect to docker Oracle instance

I am following these instructions.
I have created a docker container like this:
docker run --name oracle \
-p 1521:1521 \
-e ORACLE_SID=ORASID \
-e ORACLE_PDB=ORAPDB \
-e ORACLE_PWD=F1f#f23_ \
-v /mnt_point/oradata:/home/oracle/oradata \
oracle/database:12.2.0.1-ee
The output is:
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
Completed: alter pluggable database ORAPDB open
2017-08-07T19:16:31.190780+00:00
ORAPDB(3):CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/opt/oracle/oradata/ORASID/ORAPDB/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
ORAPDB(3):Completed: CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/opt/oracle/oradata/ORASID/ORAPDB/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
ORAPDB(3):ALTER DATABASE DEFAULT TABLESPACE "USERS"
ORAPDB(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
2017-08-07T19:16:32.867558+00:00
ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORASID/control01.ctl' SCOPE=SPFILE;
ALTER PLUGGABLE DATABASE ORAPDB SAVE STATE
Completed: ALTER PLUGGABLE DATABASE ORAPDB SAVE STATE
I kill it via ctrl+c. I then run:
docker start oracle
docker logs -f oracle
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
ORAPDB(3):Undo initialization finished serial:0 start:508498668 end:508498772 diff:104 ms (0.1 seconds)
ORAPDB(3):Database Characterset for ORAPDB is AL32UTF8
ORAPDB(3):Opatch validation is skipped for PDB ORAPDB (con_id=0)
2017-08-07T19:25:39.799508+00:00
ORAPDB(3):Opening pdb with no Resource Manager plan active
Pluggable database ORAPDB opened read write
Starting background process CJQ0
Completed: ALTER DATABASE OPEN
2017-08-07T19:25:40.536753+00:00
CJQ0 started with pid=38, OS id=239
2017-08-07T19:25:42.538433+00:00
Shared IO Pool defaulting to 64MB. Trying to get it from Buffer Cache for process 77.
===========================================================
Dumping current patch information
===========================================================
No patches have been applied
===========================================================
I then attempt to connect like this:
docker exec -ti oracle sqlplus pdbadmin#ORAPDB
The result is:
ORA-12154: TNS:could not resolve the connect identifier specified
It then asks me for a username. Regardless of which user SYS, SYSTEM or PDBADMIN, I cannot connect. I have retyped the password (F1f#f23_) a multitude of times to make sure it was not a typo. Any thoughts on this would be appreciated.
I've encountered this with those images, too. You will first have to open the pluggable database before you can connect to it.
I do that with something like this:
docker exec -ti oracle sqlplus / as sysdba
alter pluggable database pdb1 open;
Yes, I got the same error after setting up Oracle database in docker too.
So first check the instance is running (and look for the ORACLE_SID):
The Oracle SID is ORCLCDB.
If you don't have the environment set for ORACLE_SID, you get:
Connection failed.
But after you set your ORACLE_SID:
And now you no longer get the connection failure error, but a different SYSDBA instead.
Just add "/ as sysdba" to your entire sqlplus command and you are good to go.
Once the container has been started and the database created you can connect to it just like to any other database by one of the following methods:
1) sqlplus sys/<your password>#//localhost:1521/<your SID> as sysdba
2) sqlplus system/<your password>#//localhost:1521/<your SID>
3) sqlplus pdbadmin/<your password>#//localhost:1521/<Your PDB name>
Running SQL*Plus in a Docker container
You may use the same Docker image you used to start the database, to run sqlplus to connect to it, for example:
docker run --rm -ti oracle/database:12.2.0.1-ee sqlplus pdbadmin/<yourpassword>#//<db-container-ip>:1521/ORCLPDB1
Another option is to use docker exec and run sqlplus from within the same container already running the database:
docker exec -ti <container name> sqlplus pdbadmin#ORCLPDB1
To run your Oracle Database Docker image use the docker run command as follows:
docker run --name <container name> \
-p <host port>:1521 -p <host port>:5500 \
-e ORACLE_SID=<your SID> \
-e ORACLE_PDB=<your PDB name> \
-e ORACLE_PWD=<your database passwords> \
-e ORACLE_CHARACTERSET=<your character set> \
-v [<host mount point>:]/opt/oracle/oradata \
oracle/database:12.2.0.1-ee
Parameters:
--name: The name of the container (default: auto generated)
-p: The port mapping of the host port to the container port.
Two ports are exposed: 1521 (Oracle Listener), 5500 (OEM Express)
-e ORACLE_SID: The Oracle Database SID that should be used (default: ORCLCDB)
-e ORACLE_PDB: The Oracle Database PDB name that should be used (default: ORCLPDB1)
-e ORACLE_PWD: The Oracle Database SYS, SYSTEM and PDB_ADMIN password (default: auto generated)
-e ORACLE_CHARACTERSET:
The character set to use when creating the database (default: AL32UTF8)
-v /opt/oracle/oradata
The data volume to use for the database.
Has to be owned by the Unix user "oracle" or set appropriately.
If omitted the database will not be persisted over container recreation.
-v /opt/oracle/scripts/startup | /docker-entrypoint-initdb.d/startup
Optional: A volume with custom scripts to be run after database startup.
For further details see the "Running scripts after setup and on startup" section below.
-v /opt/oracle/scripts/setup | /docker-entrypoint-initdb.d/setup
Optional: A volume with custom scripts to be run after database setup.
For further details see the "Running scripts after setup and on startup" section below.
useful: https://github.com/oracle/docker-images/tree/master/OracleDatabase
In my case, the definition of environment variable TNS_ADMIN was causing the issue with ORA-12154.
I could successfully connect to the instance inside of the XE container: sqlplus test/test#//localhost:1521/XEPDB1, but not from outside.
After removing TNS_ADMIN it worked. I think, sqlplus takes TNS_ADMIN setting, and if it exists, it takes the tnsnames.ora data to resolve the connection. But of course, the Oracle XE instance from inside docker is not listed there.
As an alternative, you could use this syntax, which works although there is a tnsnames.ora defined: sqlplus test/test#'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XEPDB1)))'
This instruction worked for me:
Starting SQL*Plus and Connecting to the Database
https://docs.oracle.com/database/121/ADMQS/GUID-DE8A79BD-FAE4-4364-98FF-D2BD992A06E7.htm#ADMQS0361
Basically get into the oracle container, then enter sqlplus. type SYS AS SYSDBA at the user name prompt, and then password. After that, I create the user and tables.
I think you are looking for this.
datasource:
url: jdbc:oracle:thin:#//localhost:1521/ORCLPDB1.localdomain
username: SYS as SYSDBA
password: Oradoc_db1

Mac OS X: Delete my User, or "Current User" [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 1 year ago.
Improve this question
I have a MacBook Air (with OS X El Capitan Version 10.11.5) that is shared by other users.
I have admin privileges.
I want to delete my "User", however, I cannot do such within "System Preference > Users & Groups", because I can delete "Other Users" but not myself as "Current User".
How can I delete my "User" without affecting "Other Users"?
I am not sure about my answer but I think you cannot delete user which is logged in. So you should have logged in by another Admin account and remove yours. And If you have not access to other Admin accounts, create another admin user and delete your user when you logged in at new account
open Terminal and type the following commands, or create .sh file and add them there:
echo "YourPassword" | sudo -S rm -R /Users/YourUser
sudo rm /private/var/db/.AppleSetupDone
sudo dscl . -delete /Groups/YourUser
sudo dscl . -delete /Users/YourUser
Where YourUser could be any user you have already logged in, and "Your Password" (with quotes) is the same password you use to log in your mac.

How to open putty using batch and login then execute list of commands on bash [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 6 years ago.
Improve this question
I have a Sun OS server with oracle configured on it ; with database 11g i want to take backup , now am connecting to terminal using ssh on putty console but , what i need is finding a way to make it possible to connect using batch to ssh to the server then login then login to oracle then take the backup, is that possible and how.
If you really want to use putty to do this you can use the below in your command prompt in Windows(this will open the putty and its terminal and execute the passed argument in you text file):
putty.exe plink -ssh -load profileName -l username -pw password -m commandPath -t
Or
putty.exe -ssh username#ip -pw password -m commandPath
e.g:
putty.exe -ssh rootz#10.10.10.10 -pw rootzpass -m c:\commands\mycommands.txt
Where profileName is the profile saved in putty and the commandPath is your local directory text file containing the commands you want to execute and the username is the server user and ip is the IP address for the server , the password is your server password then you can put whatever commands you want in your textFile.
Reference
the.earth putty documentation

shell scripting grant command is not working in mysql

I have created a shell script as given below.The aim is to create a database in a remote machine and give all privileges on that database for a specific user in remote machine.The shell script is as follows.
ssh root#10.3.2.0 'echo "db name :";
read db_name;
echo "db user :";
read db_user;
echo "user password:";
read password;
host=localhost;
sql1="create database $db_name;";
sql2="grant all on ${db_name}.* to ${db_user}#${host} identified by "${password}";";
sql3="${sql1}${sql2}";
mysql -u root -p -e "${sql3}";
'
And the output Iam getting is as foloows
root#10.3.2.0's password:
db name :
amblex
db user :
qbadmin
user password:
xxxx
Enter password: xxxx
ERROR 1064 (42000) at line 1: 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 'qburst' at line 1
What could be the mistake in my script.PLease help me to resolve this.
Thanks in advance.
Instead of ...
sql2="grant all on ${db_name}.* to ${db_user}#${host} identified by "${password}";";
... try this ...
sql2="grant all on ${db_name}.* to ${db_user}#${host} identified by \"${password}\";";
Also you might want to consider using expect.

Resources