Error “Can’t connect to MySQL server error 111”

[singlepic id=28 w=320 h=240 float=right]Al conectarnos a un servidor MySQL desde fuera de la maquina donde esta corriendo, este nos puede devolver el siguiente error “Can’t connect to MySQL server error 111”. Este error indica que el servidor no esta activo, que no esta ejecutándose o que no esta escuchando peticiones por el puerto que le hemos indicado, normalmente desde el puerto 3306. Esto puede ser que el servidor este caído o que el puerto no sea el correcto, pero cuando hacemos una comprobación desde el propio servidor, este funciona correctamente y el puerto por donde esta esperando las peticiones es el correcto.

Pero desde fuera del propio servidor nos sigue dando el error de conexión, esto puede estar provocado por un parámetro de la configuración del MySQL, que le indica que solo escuche peticiones por el localhost o 127.0.0.1. Para solucionar este problema deberemos editar el fichero de configuración del servidor MySQL.

sudo vi /etc/mysql/my.cnf

Buscamos el parámetro “bind-address” que tendrá como parámetro por defecto 127.0.0.1. Cambiaremos esta dirección por la ip que tenga nuestro servidor, por ejemplo 192.168.0.254. Con este cambio, nuestro servidor ya sera accesible desde cualquier ordenador que este dentro de la misma red. Si lo que queremos es que este accesible desde Internet, en vez de poner la dirección de la red local, pondremos la dirección de nuestra ip publica.

Una vez hecho el cambio, grabamos los datos y reiniciamos el servidor MySQL para que la nueva configuración pueda tener efecto.

sudo service mysql restart

Con esto ya tenemos solucionado el error de acceso de conexión.

Instalar servidor Samba en servidor Debian

[singlepic id=27 w=320 h=240 float=right]La forma mas cómoda y sencilla de compartir carpetas en un servidor Linux que trabaja en una red  Windows, es mediante un servidor SAMBA. Para instalar el servidor samba en nuestro sistema bajo Debian, solo tenemos que instalarlo, mediante los repositorios, con el siguiente comando.

sudo apt-get install samba

Una vez que la instalación haya terminado, editamos el fichero de configuración para cambiar algunos parámetros y añadir las carpetas que vamos ha compartir, el fichero de configuración se encuentra en “/etc/samba/smb.conf”. El primer parámetro que tenemos que cambiar es el que indica el grupo de trabajo.

workgroup = EL_GRUPO_DE_TRABAJO_DE_LA_RED

El valor por defecto que viene, es el que Windows tiene por defecto en la versión inglesa, cambiamos el valor por el grupo que ya tengamos asignado en la red, el nombre que queramos. Otro parámetro que se puede cambiar, aunque no es recomendable, es “security”, este parámetro le dirá a Linux, que nivel de seguridad aplicara por defecto a todas las carpetas compartidas, si lo dejamos por defecto, el nivel de seguridad sera “user”, el nivel que el usuario que ha accedido tiene, si lo cambiamos a “share”, el valor por defecto sera el de compartir, pudiendo cualquier usuario acceder a esa carpeta. Este parámetro se lo podemos asignar a cada carpeta personalizando el nivel de seguridad para cada una, lo que por seguridad, es mas recomendable.

Como crear carpetas compartidas en Samba

Ahora lo que nos queda, es indicarle al servidor que carpetas que vamos a compartir. Para ello vamos al final del fichero de configuración y añadimos el siguiente grupo de parámetros por cada uno de los directorios que queramos compartir.

[Nonbre]
path = /ruta/del/directorio/
read only = no
security = share
null password = yes
case sensitive = no
comment = Descripcion del direcorio que vamos a compartir
guest ok = yes
browseable = yes

Explicación de los parámetros utilizados:

  1. [Nombre]: Es el nombre con el que el directorio compartida aparecerá en la red, no tiene porque llamarse de la misma manera el directorio que hemos creado en el servidor.
  2. path: Ruta completa donde esta ubicado el directorio que queremos compartir
  3. comment: Descripción del directorio que vamos ha compartir.
  4. read only: Permitimos que los usuarios puedan guardas ficheros en la carpeta. Sio solo queremos que la carpeta sea de lectura pondremos “yes”
  5. security: Es el mismo parámetro que hemos visto anteriormente. Pero aquí solo afecta a la carpeta que vamos ha compartir. Es recomendable utilizar este para modificar el nivel de seguridad que  queremos para la carpeta, dejando el parámetro que afecta a todo el servidor, con el valor más restrictivo posible.
  6. null password: Le indicamos si queremos que nos pida la contraseña para acceder o no.
  7. case sensitive: Linux diferencia entre mayúsculas y minúsculas, cosa que windows no, por ello es recomendable indicarle al servidor que el tampoco diferencie entre mayúsculas y minúsculas para no tener problemas. Para que sea sensible a mayúsculas y minúsculas le indicaremos “no”.
  8. guest ok: Todo el mundo puede acceder a la carpeta, sea un usuario registrado en el servidor o un invitado. Si solo queremos que los usuarios registrados puedan acceder a la carpeta le indicaremos “no”
  9. browseable: Se mostrara  en las carpetas compartidas de la red.

Una vez terminado, grabamos el nuevo contenido del fichero. Creamos los directorios que hemos compartido, si no los hemos hecho ya, y reiniciamos el servidor Samba

sudo service samba restart

Si hemos dado acceso completo a nuestros directorios, tenemos que tener cuidado con los permisos que le hemos dado a las carpetas, ya que si tiene el valor por defecto, solo podremos acceder a ellas con nuestro usuario. Por ello, es recomendable establecer niveles de permisos 775 o 777 para no tener problemas de acceso denegado.

Instalar comando SUDO en un servidor Debian

Cuando estamos trabajando con un servidor en LInux (ya sea Debian, Redhat o cualquier otra distribución) lo normal es hacerlo mediante un usuario normal, sin que tenga los permisos de Root, pero en algunos momentos necesitamos utilizar comandos que si necesitan que tengamos los permisos  de administrador, para solucionar este problema tenemos varias opciones:

  1. nos salimos, o abrimos otra consola, y nos conectamos como Root, un poco engorroso.
  2. Podemos utilizar el comando “SU”, nos permite cambian al usuario Root, todos los comandos que ejecutemos desde ese momento lo haremos como administrador, hasta que nos salgamos. Tiene los mismos riesgos que si nos conectamos con Root.
  3. Utilizar el comando “SUDO”.

Utilizar el comando “SUDO”

La opción mas habitual es la de utilizar el comando “sudo”, este comando nos permite ejecutar un solo comando con los permisos de administrador. Pero si estamos en un servidor Debian tenemos un problema, el comando sudo no viene instalado por defecto, pero si esta disponible en los repositorios, por lo que solo tendremos que instalarlo de la siguiente manera.

apt-get install sudo

Eso si, como para poder instalar cualquier programa tendremos que estar identificados como root, ya sea con una terminal con permisos de root o haber ejecutado anteriormente el comando “su”.

Una vez que ya tenemos instalado el comando, solo nos queda acceder al fichero de configuración de sudo y agregar los usuarios que queremos que tengan acceso al comando. Para ello editamos el fichero “/etc/sudoers” y nos desplazamos hasta la opción “User privilege specification” donde agregamos una linea por cada usuario que queramos darle el permiso para poder utilizar el programa.

usuario ALL=(ALL) ALL

Guardamos los cambios, y ya tenemos el comando sudo listo para su uso.