Puede pasar que por algun descuido o porque la memoria es frágil olvidemos la contraseña del usuario root del sistema operativo Ubuntu.
En ésta publicación explico el procedimiento para resetear la contraseña del usuario root en un servidor Ubuntu.
1. Reiniciar el servidor
2. En la pantalla de inicio de GNU GRUB seleccionar la partición del servidor Ubuntu
3. Presionar la tecla E, y aparecerá la configuración de inicio de la partición
4. Reemplazar ro quiet por rw init=/bin/bash, como se muestra a continuación:
5. Presionar CTRL + X para iniciar el sistema operativo
6. Aparecerá la consola de comandos y ejecutar el comando passwd
7. Digitar 2 veces la nueva contraseña y LISTO!!!
Bienvenidos a mí blog, en éste espacio comparto mis experiencias y conocimientos relacionados con las tecnologías de integración de sistemas, lenguajes de programación, desarrollo de software, bases de datos y Agilismo. Sí tienes comentarios, inquietudes o sugerencias, no dudes en escribirlos...
Buscar en el Blog
miércoles, 18 de mayo de 2011
jueves, 7 de abril de 2011
Un poco de Swing usando JTable, DefaultComboBoxModel, AbstractTableModel
En ésta publicación explico como usar TableModels y ComboBoxModels a través de la creación de un aplicación creada en Swing que lee datos de una base de datos MySQL.
1. Java Development Kit (JDK) v1.6
2. MySQL Server 5 o superior
3. IDE de desarrollo, con el que se prefiera trabajar (Netbeans, Eclipse, IntelliJ)
4. MySQL GUI Tools (Descarga para Windows)
5. Conector JDBC para MySQL (Link de Descarga)
Modelo Simple de Datos Relacional
Vamos a partir del siguiente modelo de datos relacional que está conformado por 2 tablas. Una tabla empleado y su relación con una tabla departamento.
En la figura se muestra que un empleado pertenecerá a un departamento.
Usando la herramienta MySQL Administrator nos conectamos al servidor de base de datos MySQL que se usará. En mi caso MySQL está instalado en la misma máquina (localhost)
Una vez que estemos dentro de la aplicación, vamos a Tools > MySQL Query Browser para ejecutar las siguientes sentencias SQL:
Luego procedemos a crear la estructura de datos física definida en el modelo, a través de las siguientes sentencias SQL:
Por último insertamos los siguiente datos por defecto en las tablas empleado y departamento.
En el IDE de su preferencia creamos un nuevo proyecto Java, con el nombre que deseen en mi caso EjemploSwingTables y creamos los siguientes paquetes de Java:
En el paquete com.blogspot.ingmmurillo.domain crearemos los POJOs para representar las tablas de la base de datos como objetos. En el paquete com.blogspot.ingmmurillo.domain crearemos los modelos (AbstractTableModel y DefaultComboBoxModel) y en el paquete crearemos un formulario para visualizar los datos.
Usando Swing crearemos el siguiente formulario (JFrame):
En el formulario se cargarán los datos de departamentos extrayendo de la base de datos y se podrá registrar nuevos empleados o eliminarlos. También se podrá visualizar los datos de la base de datos en un componente JTable y se refrescarán conforme se vaya agregando o eliminando empleados.
Estas clases son POJOs y representan la estructura de las tablas en objetos. Se las creará en el paquete com.blogspot.ingmmurillo.domain
Modelos para el ComboBox y la Tabla
Clase de Presentación
Aplicación Final
Recomendaciones
En ésta publicación he expuesto el código para usar los modelos de datos para los ComboBox en un JComboBox y para una tabla en una JTable. Cabe destacar que la lógica de conexión a la base de datos que se hace en los 2 modelos no debería estar ahí. En una aplicación real, es importante definir una clase que se encargue de manejar las conexiones a la base de datos y ejecutar las instrucciones SQL; o también se podría usar un ORM como Hibernate.
Requisitos
1. Java Development Kit (JDK) v1.6
2. MySQL Server 5 o superior
3. IDE de desarrollo, con el que se prefiera trabajar (Netbeans, Eclipse, IntelliJ)
4. MySQL GUI Tools (Descarga para Windows)
5. Conector JDBC para MySQL (Link de Descarga)
Modelo Simple de Datos Relacional
Vamos a partir del siguiente modelo de datos relacional que está conformado por 2 tablas. Una tabla empleado y su relación con una tabla departamento.
En la figura se muestra que un empleado pertenecerá a un departamento.
Creación de la base de datos
Usando la herramienta MySQL Administrator nos conectamos al servidor de base de datos MySQL que se usará. En mi caso MySQL está instalado en la misma máquina (localhost)
Una vez que estemos dentro de la aplicación, vamos a Tools > MySQL Query Browser para ejecutar las siguientes sentencias SQL:
#Usar la base de datos mysql USE mysql; #Crear la base de datos TEST para realizar el ejemplo CREATE DATABASE test DEFAULT CHARACTER SET utf8; #Usar la base de datos test USE test; #Crear un usuario para conectarse a la base de datos TEST CREATE USER 'usuario'@'%' IDENTIFIED BY 'prueba'; #Dar los permisos CRUD al usuario GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'usuario'@'%';
Luego procedemos a crear la estructura de datos física definida en el modelo, a través de las siguientes sentencias SQL:
#Crear la tabla departamento
CREATE TABLE departamento (
id INT NOT NULL AUTO_INCREMENT,
nombre VARCHAR(64) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB;
#Crear la tabla empleado
CREATE TABLE empleado (
id INT NOT NULL AUTO_INCREMENT,
nombre VARCHAR(64) NOT NULL,
sueldo DECIMAL(8,2) NOT NULL,
departamentoid INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (departamentoid) REFERENCES departamento(id) ON DELETE CASCADE
) ENGINE=InnoDB;
Por último insertamos los siguiente datos por defecto en las tablas empleado y departamento.
#Insertar departamentos
INSERT INTO departamento (nombre) VALUES ('SISTEMAS');
INSERT INTO departamento (nombre) VALUES ('CONTABILIDAD');
INSERT INTO departamento (nombre) VALUES ('VENTAS');
#Insertar empleado Administrador
INSERT INTO empleado (nombre, sueldo, departamentoid) values ('Administrador', 1500, 1);
COMMIT;
Creación del proyecto
En el IDE de su preferencia creamos un nuevo proyecto Java, con el nombre que deseen en mi caso EjemploSwingTables y creamos los siguientes paquetes de Java:
En el paquete com.blogspot.ingmmurillo.domain crearemos los POJOs para representar las tablas de la base de datos como objetos. En el paquete com.blogspot.ingmmurillo.domain crearemos los modelos (AbstractTableModel y DefaultComboBoxModel) y en el paquete crearemos un formulario para visualizar los datos.
Diseño del Formulario
Usando Swing crearemos el siguiente formulario (JFrame):
En el formulario se cargarán los datos de departamentos extrayendo de la base de datos y se podrá registrar nuevos empleados o eliminarlos. También se podrá visualizar los datos de la base de datos en un componente JTable y se refrescarán conforme se vaya agregando o eliminando empleados.
Clases de Dominio
Estas clases son POJOs y representan la estructura de las tablas en objetos. Se las creará en el paquete com.blogspot.ingmmurillo.domain
package com.blogspot.ingmmurillo.domain;
public class Departamento {
private int id;
private String nombre;
public int getId() {
return id;
}
public String getNombre() {
return nombre;
}
public void setId(int id) {
this.id = id;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return nombre;
}
}
package com.blogspot.ingmmurillo.domain;
public class Empleado {
private int id;
private String nombre;
private double sueldo;
private Departamento departamento;
public int getId() {
return id;
}
public String getNombre() {
return nombre;
}
public double getSueldo() {
return sueldo;
}
public void setId(int id) {
this.id = id;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setSueldo(double sueldo) {
this.sueldo = sueldo;
}
public Departamento getDepartamento() {
return departamento;
}
public void setDepartamento(Departamento departamento) {
this.departamento = departamento;
}
}Modelos para el ComboBox y la Tabla
package com.blogspot.ingmmurillo.model;
public class ModeloComboBoxDepartamento extends DefaultComboBoxModel {
private Vector<Departamento> departamentos;
private static final String JDBC_URL = "jdbc:mysql://localhost:3306/test";
private static final String JDBC_USUARIO = "usuario";
private static final String JDBC_CLAVE = "prueba";
public ModeloComboBoxDepartamento() {
departamentos = new Vector<Departamento>();
try {
refrescarDatos();
} catch (SQLException e) {
System.err.println(e);
}
}
public int getSize() {
return departamentos.size();
}
public Object getElementAt(int index) {
return departamentos.get(index);
}
private void refrescarDatos() throws SQLException {
Connection conexion = null;
Statement st = null;
ResultSet rs = null;
try {
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUrl(JDBC_URL);
dataSource.setUser(JDBC_USUARIO);
dataSource.setPassword(JDBC_CLAVE);
conexion = dataSource.getConnection();
st = conexion.createStatement();
rs = st.executeQuery("select id, nombre from departamento");
while (rs.next()) {
Departamento dep = new Departamento();
dep.setId(rs.getInt("id"));
dep.setNombre(rs.getString("nombre"));
departamentos.add(dep);
}
} catch (SQLException e) {
System.err.println(e);
} finally {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (conexion != null) {
conexion.close();
}
}
}
}package com.blogspot.ingmmurillo.model;
public class ModeloTablaEmpleados extends AbstractTableModel {
private Vector<String> columnas;
private Vector<Empleado> filas;
private static final String JDBC_URL = "jdbc:mysql://localhost:3306/test";
private static final String JDBC_USUARIO = "usuario";
private static final String JDBC_CLAVE = "prueba";
public ModeloTablaEmpleados(Vector<String> columnas) {
this.columnas = columnas;
filas = new Vector<Empleado>();
try {
refrescarDatos();
} catch (SQLException e) {
System.err.println(e);
}
}
public int getRowCount() {
return filas.size();
}
public int getColumnCount() {
return columnas.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
Empleado emp = filas.get(rowIndex);
switch (columnIndex) {
case 0:
return emp.getId();
case 1:
return emp.getNombre();
case 2:
return emp.getSueldo();
case 3:
return emp.getDepartamento().getNombre();
}
return emp;
}
public String getColumnName(int column) {
return columnas.get(column);
}
public void agregarEmpleado(Empleado emp) {
try {
insertarEmpleadoBDD(emp);
refrescarDatos();
} catch (SQLException e) {
System.err.println(e);
}
}
public void eliminarEmpleado(int rowIndex) {
try {
Empleado emp = filas.get(rowIndex);
eliminarEmpleadoBDD(emp);
refrescarDatos();
} catch (SQLException e) {
System.err.println(e);
}
}
private void refrescarDatos() throws SQLException {
Connection conexion = null;
Statement st = null;
ResultSet rs = null;
try {
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUrl(JDBC_URL);
dataSource.setUser(JDBC_USUARIO);
dataSource.setPassword(JDBC_CLAVE);
conexion = dataSource.getConnection();
st = conexion.createStatement();
rs = st.executeQuery("select e.id as id, e.nombre as nombre, e.sueldo as sueldo, e.departamentoid as depid, d.nombre as departamento from empleado e, departamento d where e.departamentoid = d.id");
filas.clear();
while (rs.next()) {
Empleado emp = new Empleado();
emp.setId(rs.getInt("id"));
emp.setNombre(rs.getString("nombre"));
emp.setSueldo(rs.getDouble("sueldo"));
Departamento dep = new Departamento();
dep.setId(rs.getInt("depid"));
dep.setNombre(rs.getString("departamento"));
emp.setDepartamento(dep);
filas.add(emp);
}
fireTableDataChanged();
} catch (SQLException e) {
System.err.println(e);
} finally {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (conexion != null) {
conexion.close();
}
}
}
private void insertarEmpleadoBDD(Empleado emp) throws SQLException {
Connection conexion = null;
PreparedStatement st = null;
try {
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUrl(JDBC_URL);
dataSource.setUser(JDBC_USUARIO);
dataSource.setPassword(JDBC_CLAVE);
conexion = dataSource.getConnection();
st = conexion
.prepareStatement("INSERT INTO empleado (nombre, sueldo, departamentoid) values (?, ?, ?)");
st.setString(1, emp.getNombre());
st.setDouble(2, emp.getSueldo());
st.setInt(3, emp.getDepartamento().getId());
st.executeUpdate();
fireTableDataChanged();
} catch (SQLException e) {
System.err.println(e);
} finally {
if (st != null) {
st.close();
}
if (conexion != null) {
conexion.close();
}
}
}
private void eliminarEmpleadoBDD(Empleado emp) throws SQLException {
Connection conexion = null;
PreparedStatement st = null;
try {
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUrl(JDBC_URL);
dataSource.setUser(JDBC_USUARIO);
dataSource.setPassword(JDBC_CLAVE);
conexion = dataSource.getConnection();
st = conexion.prepareStatement("DELETE FROM empleado WHERE id = ?");
st.setInt(1, emp.getId());
st.executeUpdate();
fireTableDataChanged();
} catch (SQLException e) {
System.err.println(e);
} finally {
if (st != null) {
st.close();
}
if (conexion != null) {
conexion.close();
}
}
}
}
Clase de Presentación
package com.blogspot.ingmmurillo.view;
public class FrameEmpleado extends JFrame {
private JLabel etiquetaNombre;
private JLabel etiquetaSueldo;
private JLabel etiquetaDepartamento;
private JTextField campoTextoNombre;
private JTextField campoTextoSueldo;
private JComboBox comboBoxDepartamento;
private JButton botonAgregar;
private JButton botonEliminar;
private JScrollPane panelDatosEmpleado;
private JTable tablaDatosEmpleado;
private ModeloComboBoxDepartamento modeloComboboxDeps;
private ModeloTablaEmpleados modeloTablaEmps;
public FrameEmpleado() {
init();
}
public static void main(String[] args) {
FrameEmpleado frame = new FrameEmpleado();
frame.setVisible(true);
}
public void init() {
// Titulo de la pantalla
setTitle("Empleado");
// Dimensiones de la pantalla
setSize(430, 500);
// Operacion de cerrar
setDefaultCloseOperation(EXIT_ON_CLOSE);
// Centrar el frame en el centro de pantalla
setLocationRelativeTo(null);
// Asignar el Layout a null para posicionar el formulario en el centro
// de la pantalla
setLayout(null);
setResizable(false);
// Creacion de los controles
etiquetaNombre = new JLabel("Nombre : ");
etiquetaNombre.setLocation(10, 10);
etiquetaNombre.setSize(100, 20);
etiquetaSueldo = new JLabel("Sueldo :");
etiquetaSueldo.setLocation(10, 50);
etiquetaSueldo.setSize(100, 20);
etiquetaDepartamento = new JLabel("Departamento :");
etiquetaDepartamento.setLocation(10, 90);
etiquetaDepartamento.setSize(100, 20);
campoTextoNombre = new JTextField();
campoTextoNombre.setLocation(120, 10);
campoTextoNombre.setSize(120, 20);
campoTextoSueldo = new JTextField();
campoTextoSueldo.setLocation(120, 50);
campoTextoSueldo.setSize(120, 20);
modeloComboboxDeps = new ModeloComboBoxDepartamento();
comboBoxDepartamento = new JComboBox(modeloComboboxDeps);
comboBoxDepartamento.setLocation(120, 90);
comboBoxDepartamento.setSize(120, 20);
botonAgregar = new JButton("Agregar");
botonAgregar.setLocation(320, 10);
botonAgregar.setSize(80, 20);
botonEliminar = new JButton("Eliminar");
botonEliminar.setLocation(320, 50);
botonEliminar.setSize(80, 20);
Vector<String> columnasTablaEmpleado = new Vector<String>();
columnasTablaEmpleado.add("ID");
columnasTablaEmpleado.add("NOMBRE");
columnasTablaEmpleado.add("SUELDO");
columnasTablaEmpleado.add("DEPARTAMENTO");
modeloTablaEmps = new ModeloTablaEmpleados(columnasTablaEmpleado);
tablaDatosEmpleado = new JTable(modeloTablaEmps);
panelDatosEmpleado = new JScrollPane(tablaDatosEmpleado);
panelDatosEmpleado.setLocation(10, 140);
panelDatosEmpleado.setSize(400, 300);
// Agregación de los controles al frame
add(etiquetaNombre);
add(etiquetaSueldo);
add(etiquetaDepartamento);
add(campoTextoNombre);
add(campoTextoSueldo);
add(comboBoxDepartamento);
add(botonAgregar);
add(botonEliminar);
add(panelDatosEmpleado);
// Eventos de los botones
botonAgregar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Empleado emp = new Empleado();
emp.setNombre(campoTextoNombre.getText());
emp.setSueldo(Double.valueOf(campoTextoSueldo.getText()));
Departamento dep = (Departamento) comboBoxDepartamento
.getSelectedItem();
emp.setDepartamento(dep);
modeloTablaEmps.agregarEmpleado(emp);
}
});
botonEliminar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
modeloTablaEmps.eliminarEmpleado(tablaDatosEmpleado
.getSelectedRow());
}
});
}
}Aplicación Final
Recomendaciones
En ésta publicación he expuesto el código para usar los modelos de datos para los ComboBox en un JComboBox y para una tabla en una JTable. Cabe destacar que la lógica de conexión a la base de datos que se hace en los 2 modelos no debería estar ahí. En una aplicación real, es importante definir una clase que se encargue de manejar las conexiones a la base de datos y ejecutar las instrucciones SQL; o también se podría usar un ORM como Hibernate.
viernes, 18 de marzo de 2011
Cómo resetear la contraseña del usuario root de MySQL Server
Sí te sucede que olvidaste la contraseña del usuario root del servidor de base de datos MySQL y no puedes crear nuevos usuarios, ni nuevos catálogos ni acceder a la consola de administración, en ésta publicación explico como resetear la contraseña del usuario root tanto para Linux como para Windows.
Para Windows realizar lo siguiente:
Finalmente, cerrar la consola de comandos abierta en el paso 2 e iniciar nuevamente el servicio de MySQL Server.
Para Linux:
Para Windows realizar lo siguiente:
- Sí MySQL Server está instalado como servicio. Detener el servicio
- Abrir una consola de comandos (cmd)
- Ir al directorio de instalación de MySQL Server. Por ejemplo:
C:\Program Files\MySQL\MySQL Server 5.1\bin
- Ejecutar el siguiente comando:
mysqld --skip-grant-tables &
- Abrir otra consola de comandos (cmd)
- Ingresar a la consola de administración de MySQL con el comando:
mysql -u root
- En la consola de administración de MySQL, ejecutar los siguientes comandos:
mysql>use mysql;
mysql>update user set password=PASSWORD("nuevaClave") where user='root';
mysql>flush privileges;
mysql>quit;
Finalmente, cerrar la consola de comandos abierta en el paso 2 e iniciar nuevamente el servicio de MySQL Server.
Para Linux:
- Detener el servicio de MySQL usando el comando
/etc/init.d/mysql stop
- En la consola de comandos (shell) ejecutar el comando:
sudo mysqld_safe --skip-grant-tables &
- Realizar los pasos 6 y 7 descritos para Windows.
- Iniciar nuevamente el servicio de MySQL usando el comando
/etc/init.d/mysql start
jueves, 17 de marzo de 2011
Cómo instalar MySQL Server en un servidor Ubuntu
En esta publicación explico el procedimiento para instalar el servidor de base de datos MySQL Server en un servidor Ubuntu.
1. En la consola de comandos (shell) ejecutar el siguiente comando:
NOTA: de preferencia antes de correr el comando apt-get install, actualizar la lista de
paquetes disponibles usando el comando:
2. Seguir con los pasos del asistente de instalación y no olvidarse la clave asignada al superusuario
root. Una vez instalado el servidor MySQL verificamos que el servidor se haya levantado a
través del siguiente comando:
El comando mostrará algo similar a lo siguiente, indicando el nombre de proceso asignado y que el
servidor se encuentra escuchando (LISTEN).
3. El archivo de configuración del servidor MySQL se crea en el directorio /etc/mysq/my.cnf
En éste archivo descomentar la línea:
Y colocar la IP asignada al servidor, esto sirve para que el servidor acepte conexiones de clientes
externos. Por ejemplo:
4. Reiniciar el servidor MySQL usando el comando:
5. En la consola de comandos acceder a la consola de administración de MySQL usando:
NOTA: recordar la contraseña que se colocó para el usuario root en el paso 1.
6. Crear un usuario para realizar tareas administrativas.
NOTA: en éste caso la contraseña para el usuario creado es manager, de preferencia cambiarla
a una más segura.
7. Instalar un cliente de administración gráfico para conectarse al servidor MySQL con el usuario
creado en el paso 6. En mi caso instalé la versión para Windows de la herramienta MySQL GUI
Tools descargando la aplicación del siguiente link:
http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-gui-tools-5.0-r17-win32.msi/from/pick
Para detener el servicio de MySQL ejecutar el siguiente comando:
Para iniciar el servicio ejecutar el comando:
Para reiniciar el servicio ejecutar el comando:
Ingresar a la consola del servidor MySQL usando el comando mysql -u root -p
En donde nombreUsuario corresponde al usuario que deseo cambiar la contraseña y nuevaClave a la nueva contraseña que se asignará al usuario. Es importante también definir el host desde el cual se conectará el usuario. De preferencia usar % para permitir al usuario conectarse desde cualquier IP.
Para desintalar el servidor MySQL ejecutar los siguientes comandos:
1. En la consola de comandos (shell) ejecutar el siguiente comando:
sudo apt-get install mysql-server
NOTA: de preferencia antes de correr el comando apt-get install, actualizar la lista de
paquetes disponibles usando el comando:
sudo apt-get update
2. Seguir con los pasos del asistente de instalación y no olvidarse la clave asignada al superusuario
root. Una vez instalado el servidor MySQL verificamos que el servidor se haya levantado a
través del siguiente comando:
sudo netstat -tap | grep mysql
El comando mostrará algo similar a lo siguiente, indicando el nombre de proceso asignado y que el
servidor se encuentra escuchando (LISTEN).
tcp 0 0 UbuntuSrv:mysql *:* LISTEN 667/mysqld
3. El archivo de configuración del servidor MySQL se crea en el directorio /etc/mysq/my.cnf
En éste archivo descomentar la línea:
bind-address = 127.0.0.1
Y colocar la IP asignada al servidor, esto sirve para que el servidor acepte conexiones de clientes
externos. Por ejemplo:
bind-address = 192.168.90.100
4. Reiniciar el servidor MySQL usando el comando:
sudo /etc/init.d/mysql restart
5. En la consola de comandos acceder a la consola de administración de MySQL usando:
mysql -u root -p
NOTA: recordar la contraseña que se colocó para el usuario root en el paso 1.
6. Crear un usuario para realizar tareas administrativas.
mysql>use mysql; mysql>GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY 'manager' WITH GRANT OPTION; mysql>FLUSH PRIVILEGES; mysql>QUIT;
NOTA: en éste caso la contraseña para el usuario creado es manager, de preferencia cambiarla
a una más segura.
7. Instalar un cliente de administración gráfico para conectarse al servidor MySQL con el usuario
creado en el paso 6. En mi caso instalé la versión para Windows de la herramienta MySQL GUI
Tools descargando la aplicación del siguiente link:
http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-gui-tools-5.0-r17-win32.msi/from/pick
Gestión de los servicios [Iniciar | Detener | Reiniciar]
Para detener el servicio de MySQL ejecutar el siguiente comando:
/etc/init.d/mysql stop
Para iniciar el servicio ejecutar el comando:
sudo sudo /etc/init.d/mysql start
Para reiniciar el servicio ejecutar el comando:
sudo /etc/init.d/mysql restart
Cambiar la contraseña de los usuarios del servidor MySQL
Ingresar a la consola del servidor MySQL usando el comando mysql -u root -p
mysql>use mysql;
mysql>UPDATE user SET password=PASSWORD('nuevaClave'), host='%' WHERE user='nombreUsuario';
mysql>FLUSH PRIVILEGES;
mysql>QUIT;
En donde nombreUsuario corresponde al usuario que deseo cambiar la contraseña y nuevaClave a la nueva contraseña que se asignará al usuario. Es importante también definir el host desde el cual se conectará el usuario. De preferencia usar % para permitir al usuario conectarse desde cualquier IP.
Desinstalar el servidor MySQL
Para desintalar el servidor MySQL ejecutar los siguientes comandos:
sudo apt-get remove --purge mysql-server mysql-client mysql-common sudo apt-get autoremove sudo apt-get autoclean sudo deluser mysql sudo rm -rf /var/lib/mysql sudo apt-get purge mysql-server-core-5.5 sudo apt-get purge mysql-client-core-5.5
miércoles, 23 de febrero de 2011
Nuevos nombres de certificaciones en la tecnología Java
Ahora que Oracle ya es propietario de toda la tecnología Java, ha renombrado las certificaciones Java manteniendo sus niveles de certificación.
Oracle maneja en general tres niveles de certificación:
Oracle maneja en general tres niveles de certificación:
- Oracle Certified Associate (OCA)
- Oracle Certified Professional (OCP)
- Oracle Certified Master (OCM)
- Oracle Certified Associate, Java SE 5/SE 6
- Oracle Certified Professional, Java SE 5 Programmer
- Oracle Certified Professional, Java SE 6 Programmer
- Oracle Certified Master, Java SE6 Developer
- Oracle Certified Professional, Java EE 5 Web Component Developer
- Oracle Certified Professional, Java EE 5 Business Component Developer
- Oracle Certified Professional, Java EE 5 Web Services Developer
- Oracle Certified Master, Java EE 5 Enterprise Architect
- Oracle Certified Professional, Java ME 1 Mobile Application Developer
- Oracle Certified Professional, Java Platform, Enterprise Edition 6 JavaServer Pages and Servlet Developer
- Oracle Certified Professional, Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer
- Oracle Certified Professional, Java Platform, Enterprise Edition 6 Java Persistence API Developer
- Oracle Certified Professional, Java Platform, Enterprise Edition 6 Web Services Developer
- Oracle Certified Professional, Java Platform, Enterprise Edition 6 JavaServer Faces Developer
Suscribirse a:
Entradas (Atom)







