Auteur Topic: Waar staat mijn MySQL Command-Line Client?  (gelezen 2274 keer)

Offline beste-els

  • Bedankjes
  • -Gegeven: 24
  • -Ontvangen: 11
  • Berichten: 148
Waar staat mijn MySQL Command-Line Client?
« Gepost op: 07 januari 2022, 12:32:40 »
Ik probeer vanuit PHP een grote query te runnen op mijn MariaDB10. Ik doe dat (in PHP) met shell_exec(mysql ... ) waarbij een SQL script dienst doet als input file.
Werkt perfect op mijn DS920+ met DSM 7.0.1 maar doet helemaal niets op mijn (pas opgetuigde) DS213+ met DSM 6.2.4. De hele query loopt wel in de SQL-tab in PHPMyAdmin dus de syntax is ok.
Het is of een rechtenkwestie of een syntaxprobleem maar ik kom er niet achter. Ik wil daarom met Putty in mijn DS213+ duiken om te zien of het wel lukt als ik met de hand de MySQL Command-Line Client opstart. Misschien geeft die een fasoenlijke error message waar ik wat mee kan. Maar waar vind ik die CLC? Wat is het pad naar de MySQL Command-Line Client?


<?php
$dbuser = 'my_username';
$dbhost = '127.0.0.1';
$dbpass = 'my_pwd';
$dbport = '3307';
$dbnames = 'my_db';

$script_path = dirname(__FILE__) . '/inputscript.sql';

$command = "mysql --user={$dbuser} --password={$dbpass} --host {$dbhost} --database {$dbnames} < {$script_path}";
$output = shell_exec($command);
?>
Synology: DS920+
Storage: 4 X 4TB SEAGATE Ironwolf (RAID: SHR)
SSD Cache: 1TB Samsung SSD 970 EVO Plus
Physical memory: 20GB (4GB standaard + 16GB Crucial DDR4-2666 laptopmemory)
DSM: DSM 7.2.1-69057 Update 4


Synology: DS213+
Storage: 2 X 2TB WD WD20earx (JBOD)
Physical memory: 512MB
DSM: DSM 6.2.4-25556 Update 7

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 154
  • Berichten: 754
Re: Waar staat mijn MySQL Command-Line Client?
« Reactie #1 Gepost op: 07 januari 2022, 15:42:23 »
Na wat proberen lukt het als volgt.

Met de terminal inloggen als admin.

Dan dit commando invoeren om met mariadb te verbinden.

/usr/local/mariadb10/bin/mysql -u root -p

Dat root wachtwoord van mariadb intiepen.

In het script dan ook het path invullen.
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 154
  • Berichten: 754
Re: Waar staat mijn MySQL Command-Line Client?
« Reactie #2 Gepost op: 07 januari 2022, 17:58:47 »
Voor de liefhebber die het ook wil proberen.
<?php
$dbuser 
'gebruiker';
$dbhost '127.0.0.1';
$dbpass 'wachtwoord';
$dbport '3307';
$dbnames 'login'// simpele database

// het inputscript bevat deze query
// SELECT id, username, password FROM users;
$script_path dirname(__FILE__) . '/inputscript.sql';
echo 
$script_path '<br /><br />';

$command "/usr/local/mariadb10/bin/mysql --user={$dbuser} --password={$dbpass} --host={$dbhost} --port={$dbport} --database={$dbnames} < {$script_path}";
echo 
$command '<br /><br />';

$output shell_exec($command);
echo 
$output '<br /><br />';

$result explode("\n"$output );
echo 
'<pre>' print_r$resultTRUE ) . '</pre>';
?>


<table border="1">

<?php
$head 
TRUE;
foreach ( 
$result as $key => $value )
{
if ( !empty( $value ) )
{
$res explode("\t"$value );
if ( $head )
{
echo '<thead>';
echo '<tr>';
foreach ( $res as $column )
{
echo '<th>' $column '</th>';
}
$head FALSE;
echo '</head>';
echo '<tbody>';
} else {
echo '<tr>';
foreach ( $res as $field )
{
echo '<td>' $field '</td>';
}
echo '</tr>';
}
}
}
echo '</tbody>';
?>

</table>
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline beste-els

  • Bedankjes
  • -Gegeven: 24
  • -Ontvangen: 11
  • Berichten: 148
Re: Waar staat mijn MySQL Command-Line Client?
« Reactie #3 Gepost op: 08 januari 2022, 11:57:06 »
Beste Wyodor, dank voor je hulp, het is helemaal gelukt. Mijn PHP-script loopt als een trein!

Nu ik je toch aan de lijn heb...
Ik probeer in een Putty-console mysql te starten. Lukt me niet. Ik ga naar de directory /usr/local/mariadb10/bin en tik het commando mysql in. De error message die ik dan krijg is: ERROR 1045 (28000): Access denied for user 'beste-els'@'localhost' (using password: NO). Het werkt ook niet als ik intoets mysql -u root. Ik krijg dan dezelfde foutmelding: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO). Ik loop tegen hetzelfde probleem in de directory /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin.

Misschien lukt het wel als ik SSH opstart als user root maar ik weet niet wat het wachtwoord is van root.
Synology: DS920+
Storage: 4 X 4TB SEAGATE Ironwolf (RAID: SHR)
SSD Cache: 1TB Samsung SSD 970 EVO Plus
Physical memory: 20GB (4GB standaard + 16GB Crucial DDR4-2666 laptopmemory)
DSM: DSM 7.2.1-69057 Update 4


Synology: DS213+
Storage: 2 X 2TB WD WD20earx (JBOD)
Physical memory: 512MB
DSM: DSM 6.2.4-25556 Update 7

Offline Birdy

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1336
  • -Ontvangen: 7772
  • Berichten: 43.099
  • FIFO / LIFO
    • Truebase
Re: Waar staat mijn MySQL Command-Line Client?
« Reactie #4 Gepost op: 08 januari 2022, 12:33:48 »
Om root te worden, log je eerst in als admin of een gebruiker met admin rechten.
Dan geef je in
Citaat
sudo -i
met het password van 1 van de 2 bovenstaande gebruiker.


CS406      DSM 2.0-0731    DS508      DSM 4.0-2265      DS411+II  DSM 6.2.4-25556-7   DS115J    DSM 7.1.1-42962-5   DS918+    DSM 6.2.4-25556-7
DS107+     DSM 3.1-1639    DS411slim  DSM 6.2.4-25556   DS213J    DSM 6.2.3-25426-2   DS1515+   DSM 6.2.4-25556-7   DS220+    DSM 7.2.1-69057-4
DS107+     DSM 3.1-1639    DS111      DSM 5.2-5967-9    DS413J    DSM 6.2.3-25426-2   DS716+II  DSM 6.2.4-25556-7   RT2600ac  SRM 1.2.5-8227-11
BeeDrive 1TB                                                                                                        MR2200ac  SRM 1.2.5-8227-11

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 154
  • Berichten: 754
Re: Waar staat mijn MySQL Command-Line Client?
« Reactie #5 Gepost op: 08 januari 2022, 12:38:40 »
Sudo is niet belangrijk.

Je moet de hele path naam gebruiken.
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 154
  • Berichten: 754
Re: Waar staat mijn MySQL Command-Line Client?
« Reactie #6 Gepost op: 08 januari 2022, 12:49:08 »
Ik zie dat je ook deze kan gebruiken.

/volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/mysql -u root -p

Kwam het tegen in deze twee laatste posts :

https://community.synology.com/enu/forum/17/post/8248
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 176
  • -Ontvangen: 2619
  • Berichten: 16.242
Re: Waar staat mijn MySQL Command-Line Client?
« Reactie #7 Gepost op: 08 januari 2022, 15:30:01 »
De error message die ik dan krijg is: ERROR 1045 (28000): Access denied for user

Dat zal komen omdat je het default commando 'mysql' gebruikt. Als je het pad ervoor tikt, pakt hij de versie die in mariadb zit.

Als je het commando vaak gebruikt, kun je ook een simlink maken naar je bin directory. Dan mag je daarna altijd het pad weglaten omdat hij dan standaard weet waar het commando staat. Je moet het commando dan wel een andere naam geven omdat er al een mysql is.

Volgens mij moet dit werken:

sudo ln -s /usr/local/mariadb10/bin/mysql /usr/bin/mariasql
Het commando heet dan 'mariasql' en die gebruikt dan de versie in het pakket. Maar ik zou dit alleen doen als je het commando vaak wilt gebruiken en niet steeds het pad wilt intikken.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J (Backup)

Offline beste-els

  • Bedankjes
  • -Gegeven: 24
  • -Ontvangen: 11
  • Berichten: 148
Re: Waar staat mijn MySQL Command-Line Client?
« Reactie #8 Gepost op: 10 januari 2022, 11:43:32 »
Bedankt Birdy en Wyodor voor jullie bijdragen. Vooral de schermdump van Wyodor vond ik erg handig om snel en gemakkelijk de oplossing te vinden.

En Briolet natuurlijk bedankt voor je aanwijzing naar de symbolische link (mariasql); het werkte meteen en het is leuk om ook eens met dat Linux-commando in aanraking te komen!

Eigenlijk jammer dat er geen CLI in DSM zit of heb ik iets gemist?

Synology: DS920+
Storage: 4 X 4TB SEAGATE Ironwolf (RAID: SHR)
SSD Cache: 1TB Samsung SSD 970 EVO Plus
Physical memory: 20GB (4GB standaard + 16GB Crucial DDR4-2666 laptopmemory)
DSM: DSM 7.2.1-69057 Update 4


Synology: DS213+
Storage: 2 X 2TB WD WD20earx (JBOD)
Physical memory: 512MB
DSM: DSM 6.2.4-25556 Update 7


 

DS214Play Packages waar ?

Gestart door DokmanBoard 3rd party Packages

Reacties: 4
Gelezen: 2523
Laatste bericht 19 februari 2014, 20:30:07
door Birdy
Waar zijn al m'n programma's etc gebleven in DSM?

Gestart door JordiPordieBoard Synology DSM 5.1 en eerder

Reacties: 1
Gelezen: 2284
Laatste bericht 12 januari 2012, 08:12:09
door ovanheck
"Andere" gebruikers zien niet de "Albums" waar ze wel rechten toe hebben.

Gestart door BabyloniaBoard Photo Station / Photos

Reacties: 4
Gelezen: 614
Laatste bericht 22 januari 2022, 17:49:07
door Babylonia
Waar kan ik de nieuwste sabnzb downloaden??

Gestart door boudewijnsBoard SABnzbd (usenet)

Reacties: 13
Gelezen: 13029
Laatste bericht 30 juni 2013, 20:34:22
door romorio
Waar 3GB RAM voor 1512+ te krijgen

Gestart door ddewitBoard NAS hardware vragen

Reacties: 6
Gelezen: 2792
Laatste bericht 28 juli 2012, 20:47:38
door ddewit