Exemple de my.cnf pour Magento 1.6 / 1.7 & 1.8

### LE 26/11/2013
### /etc/mysql/my.cnf   pour Magento sur serveur dédié Ubuntu + Plesk 11.5 

 [client]
 port = 3306
 socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# This was formally known as [safe_mysqld]. 
 [mysqld_safe]
 socket = /var/run/mysqld/mysqld.sock
 nice = 0
[mysqld]
 local-infile=0
 # * IMPORTANT
 # adjust /etc/apparmor.d/usr.sbin.mysqld.

user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp

###########################################################################
##### POUR AUTORISER L ACCES A LA BASE MYSQL DEPUIS UN AUTRE SERVEUR  #####
###########################################################################
# 1)
###### Cette ligne empèche l'accès a la Base Mysql depuis un autre serveur
###### Mettre un "#" devant = #skip-external-locking #pour autoriser l acces 
skip-external-locking
# 2)
######## d'origine pour LOCALHOST = bind-address = 127.0.0.1
########  NE FONCTIONNE PAS AVEC IP FAILOVER
######## bind-address = 127.0.0.1 
######## *** REMPLACE PAR L ADRESSE DU SERVEUR bind-address = 176.31.***.***
bind-address = 127.0.0.1
###########################################################################
#
# * Fine Tuning
#
# eric --- original etait a  16M
 key_buffer = 32M
# eric --- original etait a  16M
 max_allowed_packet = 32M
 thread_stack = 192K
 thread_cache_size = 8
 # This replaces the startup script and checks MyISAM tables if needed
 # the first time they are touched
 myisam-recover = BACKUP
 #max_connections = 100
 #table_cache = 64
 #thread_concurrency = 10
 #
 # * Query Cache Configuration
 #
 # eric --- original etait   1M
 query_cache_limit = 2M
 # eric --- original etait   16M
 query_cache_size = 64M
 #
####### Ajouter ###################################
 table_cache = 1024
 # 2x le nombre de cores CPU innodb_thread_concurrency = 8
 innodb_thread_concurrency = 8
 innodb_flush_log_at_trx_commit = 0 #(safe vs speed, 0 speed, 1 safe, 2 mixed)
 innodb_log_buffer_size = 32M
# 66% de la mémoire disponible # (3 Go sur un serveur web 8 Go de RAM )

# ceci est important trop de mémoire innodb_buffer peut generer une erreur Magento
# EXEMPLE.. SQLSTATE[4200]: Syntax error or access violation: 1286 Unknown table engine 'InnoDB'
# (1024M sur un site web 4 Go de RAM)

 innodb_buffer_pool_size = 4096M
 innodb_additional_mem_pool_size = 32M
 ######## fin de l'ajout ###############################
################################################
 # * Logging and Replication
 #
 # Both location gets rotated by the cronjob.
 # Be aware that this log type is a performance killer.
 # As of 5.1 you can enable the log at runtime!
 #general_log_file = /var/log/mysql/mysql.log
 #general_log = 1
log_error = /var/log/mysql/error.log
# Here you can see queries with especially long duration
 #log_slow_queries = /var/log/mysql/mysql-slow.log
 #long_query_time = 2
 #log-queries-not-using-indexes
 #
 # The following can be used as easy to replay backup logs or for replication.
 # note: if you are setting up a replication slave, see README.Debian about
 # other settings you may need to change.
 #server-id = 1
 #log_bin = /var/log/mysql/mysql-bin.log
 expire_logs_days = 10
 max_binlog_size = 100M
 #binlog_do_db = include_database_name
 #binlog_ignore_db = include_database_name
 #
 # * InnoDB
 #
 # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
 # Read the manual for more InnoDB related options. There are many!
 #
 # * Security Features
 #
 # Read the manual, too, if you want chroot!
 # chroot = /var/lib/mysql/
 #
 # For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
 #
 # ssl-ca=/etc/mysql/cacert.pem
 # ssl-cert=/etc/mysql/server-cert.pem
 # ssl-key=/etc/mysql/server-key.pem
[mysqldump]
 quick
 quote-names
 max_allowed_packet = 32M
[mysql]
 #no-auto-rehash # faster start of mysql but no tab completition
[isamchk]
 key_buffer = 32M
#
 # * IMPORTANT: Additional settings that can override those from this file!
 # The files must end with '.cnf', otherwise they'll be ignored.
 #
 !includedir /etc/mysql/conf.d/

Erreur Mysql : /var/run/mysqld/mysqld.sock (solution avec mysqld_safe)

Après quelques manipulations j’ai planté Mon Mysql.

Mon site sous Magento ne pouvait plus fonctionner.

le message d’erreur était : /var/run/mysqld/mysqld.sock Manquant.

 

J’ai donc lancer sous Putty ou dans un terminal (linux)

mysqld_safe

est tout est rentré dans l’ordre.

source : http://dev.mysql.com/doc/refman/5.5/en/mysqld-safe.html

 

 

 

 

 

 

 

 

 

 

Installer MySQL sous Windows

  • Cliquez sur ce lien, pour installer les packages MySQL pour Windows.

_______________________________________________________________

Après avoir installé le .msi vous pouvez exécuter des commandes Mysql directement dans windows.

Vous n’avez plus qu’a cliquer sur « New connection »  et remplir les parametre que connection de votre serveur.

si votre serveur mysql est distant pensez à autoriser l’accès a distance voir ce tutoriel ouvrir l’accès a distance d’un serveur Mysql

____________________________________________________________________

Je préfère Toad, + facile à utiliser :

Plus simple Toad pour MySQL

A télécharger ici.

 

 

 

 

 

 

 

Remplace un phpMyAdmin sous windows.

Copier tout Magento (Base+Dossier) entre 2 serveurs automatiquement et planifiée

Pour copier Magento entre deux serveurs, automatiquement la Nuit .

J’ai déja fait des script et des tutoriels pour chaque étape:

Tutoriel Comment :

1) il y a 3 Scripts à créer suivez chacun de ces tutoriels :

  1. Désactiver ReWrite dans l’admin >> sytème >> Configuration >> Web >> Utiliser les réécriture du serveur web  mettre NON
  2. Purger les Log pour Réduire la Base et vider la cache
  3. Copier la Base Mysql entre deux serveurs
  4. Copier le dossier Magento en ligne de commande FTP
  5. Modifier Le core_data_config

_________________________________________________________

2) Il n’y a plus qu’a  faire un script qui lance 4 scripts 🙂

A saisir dans un éditeur de texte et enregistrez sous : /var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_complet_2serveurs.sh

#!/bin/sh
# La première ligne sert à spécifier quel shell tu veux excéuter. ici sh
# pour executer un script il faut
# 1) changer c'est droit pour devenir executable:  chmod 777 NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

############################################################
#### ETAPE 1 Nettoyer les log .. Exécution du script 1 #########
############################################################
./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh

############################################################
#### ETAPE 2 récupérer la base Mysql et la restaurer #########
############################################################

 ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh

############################################################
############# ETAPE 4 Copier les Dossiers en FTP ############
############################################################
./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_ftp 

############################################################
############# ETAPE 4 Modifier le Core_data_config #########
############################################################
./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_core_config_data

5) Vous n’avez plus qu’a insérer ce petit script dans un tâche Planifiée avec Crontab ou Gmone-schedule


Créer une tâche Planifiée

  • Démarrez Tâche Planifiées > Applications > Outils système > Tâches Planifiées
  • Cliquez sur Nouveau
  • Cliquez sur Une tâche lancée régulièrement
  • Saisissez une Description “Ma sauvegarde”
  • Commande : Précisez votre Script ou la ligne de commande :  ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_complet_2serveurs.sh
  • Expert saisissez : Minute 0 – Heure 7 – jour * – Mois * – jour de la semaine * = à 5H00 tous les jours
  • Ajouter et Valider
  • Voila Gnome-schedule a inséré pour vous la ligne cron
    0 5 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_complet_2serveurs.sh

Vous pouvez Cliquez sur  Lance la tache Sélectionner + “Exécuter” pour tester la tache.

___________________________________________________________________

Ou  avec crontab  (Planificateur de tâche en ligne de commande )

(sans gnome-schedule), tapez :
crontab -e
insérez : 0 5 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_complet_2serveurs.sh

Explication des instructions crontab sur wikipedia


 j’ai fait un tutoriel sur les taches Planifiées ici

Script de copie base Mysql entre deux serveurs (magento, Prestashop..)

Le but est de copier une base Mysql entre deux serveurs automatiquement, par exemple toute les nuits à 5h30 du matin.

  • Vérifier que les accès Mysql soient ouverts dans my.cnf
  • avoir au moins une base créer vierge sur le Serveur de destination (la première)
  • créer un petit Script.sh
  • Planifié le Scritp (Cron)

1) Ouvrir l’accès Mysql vers l’extérieur :

  • Editez le fichier : /etc/mysql/my.cnf
  • Commentez la ligne avec un # : skip-networking et Bind-address
  • Redémarrer  : Service mysql restart

J’ai fait un tutoriel ici : Explication pour Autoriser la connexion a distance MySQL

2) La première fois :

Créer une base de donnée vierge et un utilisateur sur le serveur de destination (Cible).

Si vous avez Plesk :

  • Créer la base vièrge : Dans Plesk >  Accueil> Abonnements> VoreSiteWeb> Sites Web & Domaines> Bases de données > Sélectionnez > Ajouter une nouvelle Base de données

3) Création et Exécution du Script:

Il doit être placé et exécuté dans un dossier du serveur de destination (cible)

Avec un éditeur de texte vous créer un fichier ici et sous le nom : /var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh

  • Il doit impérativement commencer par : #!/bin/sh

Remplacer

LoginBaseDistant : le nom de l'utilisateur de la base distante 
MotdePasseBaseDistant : Mot de passe de la base distante
NomBaseDistant : nom de la base distante 
VotreCheminCible : Votre dossier de destinations
#!/bin/sh
# La première ligne sert à spécifier quel shell tu veux excéuter. ici sh
# pour executer un script il faut
# 1) changer c'est droit pour devenir executable:  chmod 777 NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

echo "Etape 1 ) Récupération de la base distante et sauvegarde en cours..."
 mysqldump -h 192.154.154.10 -u LoginBaseDistant -pMotdePasseBaseDistant NomBaseDistant >/VotreCheminCible/Sauvegarde.sql 

chmod 777 /VotreCheminCible/Sauvegarde.sql  

echo "Etape 2 ) Restauration sur ce serveur de cette sauvegarde en cours..."

mysql -u LoginBase -pMotdePasseBase NomBase </VotreCheminCible/Sauvegarde.sql 

echo "Terminée"
  • Enregistrer le fichier dans un  dossier de votre Serveur, par exemple /var/MesSauvegarde/sauvegardeMysql.sh
  • Ajouter le Droit de exécuter : chmod 777 /var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh
  • Pour exécuter il vous plus qu’a taper :
    ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh

4) Modifier automatiquement : Core_Config_data

Pour Magento : Ajouter des instructions Mysql pour Modifier automatique le fichier Core_Config_data :

si votre Serveur Destination n’a pas le même dossier pour Magento, et certainement par la même URL, voici ce de vous devez ajouter ceci au Script pour qu’il modifie automatiquement le  Core_Config_data :

C’est très simple, dans un petit fichier texte vous saisissez les instructions Mysql que vous avez besoin, vous ajoutez un ; a la fin de chaque ligne.

Dans un Fichier texte appeler :mes.mysql

je saisie ces deux lignes pour Modifier le Core_config_data de Magento

update core_config_data set  value="http://MonSite/MonDossierMagento/" where path="web/secure/base_url";
update core_config_data set  value="http://MonSite/MonDossierMagento/" where path="web/unsecure/base_url";

Pour l’exécuter, je peux saisir :

Mymysql -h localhost -u User161 -p35hpzq.. Base161 < mes.mysql

Ou vous ajouter au  Script   (voir Tuto créer un Script)

#!/bin/sh
# La première ligne sert à spécifier quel shell tu veux excéuter. ici sh
# pour executer un script il faut
# 1) changer c'est droit pour devenir executable:  chmod 777 NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

echo "Lancement du Script"
mysql -h localhost -u User161 -p35hpzq.. Base161 <mes.mysql
Echo "Terminé"

5) Vous n’avez plus qu’a insérer ce petit script dans un tâche Planifiée avec Crontab ou Gmone-schedule


Créer une tâche Planifiée

  • Démarrez Tâche Planifiées > Applications > Outils système > Tâches Planifiées
  • Cliquez sur Nouveau
  • Cliquez sur Une tâche lancée régulièrement
  • Saisissez une Description “Ma sauvegarde”
  • Commande : Précisez votre Script ou la ligne de commande :  ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh
  • Expert saisissez : Minute 0 – Heure 7 – jour * – Mois * – jour de la semaine * = à 5H00 tous les jours
  • Ajouter et Valider
  • Voila Gnome-schedule a inséré pour vous la ligne cron
    0 5 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh

Vous pouvez Cliquez sur  Lance la tache Sélectionner + “Exécuter” pour tester la tache.

___________________________________________________________________

Ou  avec crontab  (Planificateur de tâche en ligne de commande )

(sans gnome-schedule), tapez :
crontab -e
insérez : 0 5 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh

Explication des instructions crontab sur wikipedia


 j’ai fait un tutoriel sur les taches Planifiées ici

_______________________________________________________


VOIR AUSSI : Voir tutoriel Créer une sauvegarde Mysql Magento en ligne de commande ici

Script pour garder en pleine forme Magento.

Script pour garder en pleine forme Magento.

Avec un éditeur de texte nous allons créer un fichier script.sh,

Il doit impérativement commencer par : #!/bin/sh

Nous allons y mettre tout ce que votre serveur Magento a besoin de faire régulièrement.

  • Nettoyer les log de la base de données régulièrement
  • Exécuter la tache Cron.sh de Magento
  • Vider la corbeille du serveur
  • Vider dossier cache et session*
  • Redémarrer les Services apache
  • Redémarrer les Services Mysql
* Mise en garde : vider les sessions a pour effet de vider les paniers en cours et déconnecte les utilisateurs en cours.

_______________________________________________________

 Nettoyer les log de la base de données régulièrement

1) Créer un fichier est les instructions Mysql pour vider les table de Log

Créer avec un éditeur un fichier texte , nommez -le : Vider_table_log.mysql

DELETE FROM dataflow_batch_export;
DELETE FROM dataflow_batch_import;
DELETE FROM log_customer;
DELETE FROM log_quote;
DELETE FROM log_summary;
DELETE FROM log_summary_type;
DELETE FROM log_url;
DELETE FROM log_url_info;
DELETE FROM log_visitor;
DELETE FROM log_visitor_info;
DELETE FROM log_visitor_online;
DELETE FROM report_viewed_product_index;
DELETE FROM report_compared_product_index;
DELETE FROM report_event;

Enregistrez les dans votre dossier /magento/shell/

2) On va créer le Script de purge :

#!/bin/sh
# La première ligne sert à spécifier quel shell tu veux excéuter. ici sh
# pour executer un script il faut
# 1) changer c'est droit pour devenir executable:  chmod +x NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

############################################################
#### ETAPE 1 Nettoyer les log de la base de données ###########
############################################################

#### Connexion a votre Base de Données Magento Mysql ####
##### mysql -h machine -u utilisateur -pMotdePase base_de_données
##  Exemples :
##  mysql -h localhost -u User161 -p35hpzq.. Base161
##  mysql -h 17.31.2.67 -u User161 -p35hpzq.. Base161
## vous pouvez tester dans un terminal, Si vous ête connecté il doit apparaitre :  Mysql>
##  Modifier ci-dessous pour mettre vos paramètre

mysql -h localhost -u User161 -p35hpzq.. Base161 < /magento/shell/Vider_table_log.mysql 
echo "si vous n'avez vu aucun message d'erreur la base est purgé :)"

#########################################################
#### ETAPE 2 Exécuter la tache Cron.sh de Magento #######
#########################################################
/var/www/vhosts/VotreSite.fr/httpdocs/DossierMagento/cron.sh

#########################################################
#### ETAPE 3 Vider la corbeille du serveur ################
#########################################################
rm -r -f /var/.Trash-0/

#########################################################
#### ETAPE 4 Vider cache et session #######################
#########################################################
rm -r  -f /var/www/vhosts/VotreSiteInternet/httpdocs/VotredossierMagento/var/cache

# Attention cette ligne va également vider les panier en cours et déconnecter les utilisateurs
rm -r  -f /var/www/vhosts/VotreSiteInternet/httpdocs/VotredossierMagento/var/session

#########################################################
#### ETAPE 5 Redémarrer les Services apache #############
#########################################################
service apache2 restart

#########################################################
#### ETAPE 6 Redémarrer les Services mysql ##############
#########################################################
service mysql restart

3) Exécuter :

  • Enregistrer le fichier dans un  dossier de votre Serveur, par exemple
     /var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh
  • Ajouter le Droit de l’exécuter :
    chmod +x /var/MesSauvegarde/sauvegarde.sh
  • Pour l’exécuter il vous reste plus qu’a taper :
    ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh

______________________________________________________

Vous n’avez plus qu’a insérer ce petit script dans un tâche Planifiée avec Cron ou Gmone-schedule


Créer une tâche Planifiée

  • Démarrez Tâche Planifiées > Applications > Outils système > Tâches Planifiées
  • Cliquez sur Nouveau
  • Cliquez sur Une tâche lancée régulièrement
  • Saisissez une Description “Script Magento en pleine forme”
  • Commande : Précisez votre Script ou la ligne de commande :  ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh
  • Expert saisissez : Minute 0 – Heure 7 – jour * – Mois * – jour de la semaine * = à 7H00 tous les jours
  • Ajouter et Valider
  • Voila Gnome-schedule a inséré pour vous la ligne cron
    0 7 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh

Vous pouvez Cliquez sur  Lance la tache Sélectionner + “Exécuter” pour tester la tache.

___________________________________________________________________

Ou  avec crontab  (Planificateur de tâche en ligne de commande )

(sans gnome-schedule), tapez :
crontab -e
insérez : 0 7 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh

Explication des instructions crontab sur wikipedia


 j’ai fait un tutoriel sur les taches Planifiées ici

_______________________________________________________

On peut aussi ajouter:

  • Sauvegarder la base de Magento
  • Compresser cette sauvegarde
  • Copier cette Sauvegarde vers un autre dossier

Voir tutoriel Créer une sauvegarde Mysql Magento en ligne de commande ici