martes, 31 de diciembre de 2013

Un DBA MySQL mira PostgreSQL

Original post: http://anothermysqldba.blogspot.com/2013/12/a-mysql-dba-looks-at-postgresql.html

Así que este es un viaje del / a MySQL DBA mirar en PostgreSQL . No es un ataque sólo observaciones y ejemplos. 

El uso de CentOS 6.5 de 64 bits: 

rpm-ivh http://yum.postgresql.org/9.3/redhat/rhel-6.5-x86_64/pgdg-centos93-9.3-1.noarch.rpm

ñam groupinstall "Base de datos PostgreSQL Server 9.3 PGDG" 
Se instalarán ---> Paquete postgresql93.x86_64 0:9.3.2-1PGDG. RHEL6 
---> Se instalará postgresql93-contrib.x86_64 Paquete 0:9.3.2-1PGDG. RHEL6 
---> Se instalará postgresql93-libs.x86_64 Paquete 0:9.3.2-1PGDG. RHEL6 
 
---> Se instalará Paquete postgresql93-server.x86_64 0:9.3.2-1PGDG. RHEL6 

yum install postgresql93-servidor 

servicio postgresql-9.3 initdb 
Base de datos Inicialización: [OK] 
postgresql-9.3 puesta en servicio 
A partir postgresql-9.3 servicio: [OK] 
chkconfig postgresql-9.3 en 

Todos los siguientes ejemplos se basan en el PostgreSQL Wiki 
# Su - postgres 
-Bash-4.1 $ psql 
 
psql (9.3.2) 

postgres = # CREAR USUARIO CONTRASEÑA testuser '1234 '; 
CREATE ROLE 
postgres = # GRANT ALL ON SCHEMA prueba por TestUser; 
GRANT 

postgres = # GRANT ALL ON todas las tablas de prueba SCHEMA por TestUser; 
GRANT 
postgres = # \ q
-Bash-4.1 $ exit
logout
# Su testuser

$ Pwd 
/ Home / testuser 
$ psql-d postgres 
psql (9.3.2) 

Escriba "help" para obtener ayuda. 
postgres => CREATE test.test MESA (varchar COLTEST (20));
CREATE TABLE
postgres => insertan en test.test valores (COLTEST) ('It works!');
INSERT 0 1
postgres => SELECT * FROM test.test;
COLTEST
-----------
¡Funciona!
(1 row)

postgres => test.test DROP TABLE;
DROP TABLE
postgres =>

Me di cuenta de que estas declaraciones de subvención trabajaron bien con 9.3 pero la distro originalmente instalado una versión 8. * Y algunos de los comandos fallé. 

Por cierto ... Usted, por supuesto, todavía tiene las características que usted esperaría de un sistema RDBM estable.Concedidos estos son ejemplos sencillos. 

postgres => EXPLAIN SELECT * de test.test; 
PLAN DE CONSULTA 
-------------------------------------------------- ------ 
Sec. Scan en la prueba (cost = 0.00 .. 19.20 rows = 920 width = 58) 

Mostrar bases de datos == \ l 
postgres-> \ l 
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | 
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | = c / postgres + 
| | | | | Postgres = TACc / postgres 
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | = c / postgres + 

| | | | | Postgres = TACc / postgres 

USO es el estándar SQL: 
postgres-> Usar postgres 

Enumerar todos los esquemas: 

postgres-> \ dn 
públicas | postgres 

prueba | postgres 

SHOW CREATE TABLE y etc, son un poco más de trabajo. Concedido un DBA MySQL lo verá como más trabajo, porque de lo que estamos acostumbrados a hacer. PostgreSQL utiliza espacios de tabla más de usuarios de MySQL están acostumbrados a hacer.

  postgres => CREATE sometable MESA (varchar SomeField (255), varchar anotherfield (150), fecha datefield); 
  CREATE TABLE 
  postgres => INSERT INTO VALORES sometable (SomeField, anotherfield, DateField) ('fubar', 'rabuf', '2013-12-30 '); 
  INSERT 0 1 
  postgres => INSERT INTO VALORES sometable (SomeField, anotherfield, DateField) ('fubar', 'rabuf', NOW ()); 
  INSERT 0 1 
  postgres => INSERT INTO VALORES sometable (SomeField, anotherfield, DateField) ('fubar2', 'rabuf2', NOW ()); 
  INSERT 0 1 
  postgres => select * from sometable; 
   SomeField | anotherfield | datefield   
  ----------- + -------------- + ------------ 
   fubar | rabuf | 30/12/2013 
   fubar | rabuf | 30/12/2013 
   fubar2 | rabuf2 | 12/30/2013 
  (3 filas) 

postgres => select * from sometable DONDE SomeField = 'fubar'; SomeField | anotherfield | datefield ----------- + -------------- + ---- -------- fubar | rabuf | 30/12/2013 fubar | rabuf | 12/30/2013 (2 filas)

postgres => \? <- La ayuda que le mostrará cómo navegar alrededor.

Mostrar las tablas == \ dt

postgres => \ dt
Lista de las relaciones
Esquema | Nombre | Tipo | Propietario
-------- + ----------- + ------- + ----------
público | sometable | Mesa | testuser

postgres => ALTER TABLE ADD COLUMN sometable intfield int [11]; ALTER TABLE

postgres => select * from sometable; SomeField | anotherfield | datefield | intfield ----------- + -------------- + -------- ---- + ---------- fubar | rabuf | 12/30/2013 | fubar | rabuf | 12/30/2013 | fubar2 | rabuf2 | 12/30/2013 | (3 filas)

Mostrar create table == \ d + nombre de tabla
postgres => \ d + sometable
Tabla "public.sometable"
Columna | Tipo | Modificadores | Almacenamiento | Estadísticas destino | Descripción
-------------- + ------------------------ + ---------- - + ---------- + -------------- + -------------
SomeField | carácter variable (255) | | ampliada | |
anotherfield | carácter variable (150) | | ampliada | |
datefield | Fecha | | llano | |
intfield | entero [] | | ampliada | |
Tiene OID: no


Para ayudar a que más puede instalar pgadmin
yum install pgadmin3_93

Conseguir que para trabajar y cómo funciona podría ser otro post entero blog.

Hasta ahora .... Me quedo con MySQL, pero esto es sólo un ejemplo simplista de usar PostgreSQL. Esto puede ayudarle a empezar a usted puede evaluar por sí mismo.

Enlaces Útiles abajo. Por favor refiérase a estos, ya que tienen más experiencia con PostgreSQL que yo.

sábado, 7 de diciembre de 2013

ERROR 1356 (HY000)

Original post:  http://anothermysqldba.blogspot.com/2013/12/error-1356-hy000.html


Lo más importante de entender cuando viene sobre un error es tomar un momento y relajarse. 
A veces la gente se encuentra con un error y se vuelven nerviosos y frustrados. Tome una respiración profunda y relajarse. A veces, " La locura es como la gravedad. Todo lo que necesita es un poco de empuje "y" A veces las preguntas son complicadas y las respuestas son simples . " 

¿Qué es todo esto? Bueno, por ejemplo, se me pidió recientemente para ayudar a resolver un problema que preocupaba otra DBA. Nada significaba en la falta de respeto a todos a que DBA pero estar en un pueblo de acometidas apenas dan a la respuesta que está en frente de ellos y en lugar de espiral hacia abajo en la locura . 

Este es el concepto general de la situación. 

Después de hacer un mysqldump de una base de datos que el usuario se mudó a otra base de datos para que otros puedan ser pruebas. La importación funcionaba bien. Sin embargo, los usuarios comenzaron a aparecer errores al tratar de consultar desde un punto de vista pre-compilados. 

mysql> select * from límite <nombre_vista> 1; 

ERROR 1356 (HY000): View '. <nombre_bd> <viewname>' Referencias mesa (s) inválida o columna (s) o la función (s) o definidor / invocador de vista de los derechos carecen de usarlos 

La primera reacción fue pensar que el que algo salió mal con la importación. Hizo la vista o en realidad las tablas relacionadas se corrompen? 

No. 

Para solucionar este error lo primero que TODO era: mysql> SHOW CREATE vista <nombre_vista> \ G 

Es probable que vea algo que comienza así: 
*************************** 1. fila *************************** 
Vista: Visitantes 
 
Crear vista: CREATE ALGORITMO = DEFINER UNDEFINED = `<Some_user>` @ `<Some_host_or_IP>` SQL SECURITY DEFINER VISTA 

Después de ver que el definidor es: `<Some_user>` @ `<Some_host_or_IP>` que puedas ver las subvenciones para ese usuario. 

mysql> SHOW GRANTS para `<Some_user>` @ `<Some_host_or_IP>`; 

Resulta que la solución era sólo lo que dijo el error en el primer lugar: "definidor / invocador de los derechos de vista la falta usarlos" 

Para hacer más fácil que usted puede hacer un show subvenciones en la base de datos en el que ya trabaja y copiar la instrucción de concesión, o puede revisar qué tipo de permisos que necesita para implementar en la nueva base de datos para que el fin de reunir los datos necesarios. 

Una simple actualización de los permisos para el usuario y el error se había ido. 

" A veces las respuestas son sencillas . " 


viernes, 29 de noviembre de 2013

Una estrategia de la comunidad

Original post: http://anothermysqldba.blogspot.com/2013/11/a-strategy-from-community.html

Hemos visto las noticias sobre MariaDB reemplazar MySQL en Fedora, SUSE y Red Hat.

Mientras que Oracle no estaría contento con este tipo de noticias, la comunidad de código abierto compatible con el enfoque en una solución de código "más" abierta a ser implementado en Linux.

Lo interesante que todos podamos sobre el aspecto es que, la decisión o estrategia para pasar a MariaDB de MySQL fue probable es que no acaba de hacer por la alta dirección en Red Hat. Esto es mucho más probable que sea un movimiento de la comunidad de código abierto de Red Hat que evalúa y escucharon.

Considere esto, echar un vistazo atrás en casa de Jackie Yeaney ( @ jackieyeaney ) Publicación sobre el " Democratizar el Proceso de Estrategia Corporativa de Red Hat "(publicado 10 de noviembre 2011) y aprender cómo funciona Red Hat. "Hemos utilizado las redes existentes en la comunidad de código abierto para" mantener la mente abierta "y socializar las ideas fuera de Red Hat." La comunidad quería apertura y el resultado fue un movimiento para MariaDB por Red Hat, está relacionado con la estrategia abierta de Red Hat, en mi humilde opinión, lo más probable es que sí.

Jim Whitehurst ( @ JWhitehurst ) parece abrazar a la comunidad de código abierto no sólo a causa de los beneficios financieros que premia a la empresa, sino también por la forma en que ha revolucionado la forma de trabajar, tomar decisiones estratégicas y tomar la entrada de los demás: "Con suficientes ojos, todos los errores son poco profunda ".

Tome un momento para relacionar esta última afirmación a MySQL. Si usted sigue MySQL entonces usted es consciente de que Oracle cierra (o tiene una versión menos abierto ahora) el sitio bugs.mysql.com. Mientras que Oracle tiene su propio razonamiento corporativo para que la comunidad de código abierto de la siguiente manera "Dada suficientes ojos, todos los errores son superficiales".

Como MariaDB crece y se vuelven más arraigada en las distribuciones de Linux como predeterminado DB el seguimiento de errores relacionados estará abierto y será interesante ver cómo los errores divididos entre María y MySQL en el largo plazo.

Así que ahora .. lo interesante es mientras que MySQL tenía la empresa y las versiones de la comunidad pertenecientes a Oracle el movimiento todavía sucedió debido a MariaDB. Oracle también es propietaria de Java y el OpenJDK relacionada. Aunque sólo estoy pidiendo esto como un extraño mirando hacia adentro .. Si un Java / OpenJDK se diversificó en otro paquete de software que no era propiedad de Oracle, podríamos ver pronto un reemplazo para Java / OpenJDK en Red Hat también? Una vez más soy una persona ajena al mundo de Java, por lo que sólo pido que, debido a las similitudes que representa con MySQL.

martes, 19 de noviembre de 2013

MariaDB y las distribuciones de Linux

Original post: http://anothermysqldba.blogspot.com/2013/11/mariadb-linux-distributions.html

Así que por ahora muchos de ustedes han visto las noticias sobre Google, SUSE y Red Hat / Fedora mudarse a MariaDB como base de datos predeterminada en lugar de MySQL.

MariaDB y SkySQL han hecho movimientos de negocios muy productivos este año. ¿Qué significa esto en realidad para la comunidad MySQL y la comunidad en general de código abierto?

Para empezar piensan volver a lo que hizo tan popular MySQL? Es fácilmente disponible en todas las principales distribuciones de Linux.

OpenSUSE y Fedora ya se están moviendo a MariaDB para el impulso a un movimiento centrado código abierto ha comenzado. Después de una migración de Red Hat Enterprise Linux que tiene MariaDB como la base de datos por defecto entonces también significa que CentOS pronto tendrían MariaDB como base de datos predeterminada.

Probablemente pronto a seguir será una jugada de Ubuntu y Debian. Yo podría haber perdido las noticias en un movimiento ya, pero yo no lo creo.

Todo esto es una gran noticia y se mueve para MariaDB y la comunidad de código abierto. MariaDB, naturalmente, comienzan a ver la aceptación del usuario y el uso. Aunque MySQL de Oracle sigue siendo un paquete de software de código abierto el gran problema ha sido el sitio bugs.mysql.com y seguimiento de errores de usuario mysql. ¿La gente pronto comenzará a realizar un seguimiento más errores en MariaDB?

MariaDB también tiene características de código abierto que imitan la empresa únicas soluciones disponibles en MySQL de Oracle. Así que muchos usuarios van a recoger naturalmente arriba en esas características.

Mientras que Oracle es la construcción de grandes características y el código, pero ¿cómo muchos en la comunidad están tomando? MySQL 5.1 se utiliza mucho en la comunidad utiliza las distribuciones de Linux y muchos usuarios sólo podría saber MySQL 5.1 y tan pronto MariaDB 5.5.

¿Qué pasará después?
Bueno lo que Oracle decide hacer aún está por verse. Oracle ya tiene Red Hat Linux para construir su Oracle Linux (OEL). Así que, irónicamente, ahora MariaDB, que se bifurca desde MySQL de Oracle, estará en Red Hat Linux para Oracle de quitar para su OEL. Will Oracle luchar con Java de alguna manera?

¿Qué Percona hacer? Percona es también un jugador en esto y ha tenido una relación respetuosa con MariaDB y Oracle a través de los años. Naturalmente, Percona no se inclinan hacia el lado de fuente abierta de las cosas, así que será curioso ver si se produce cualquier movimiento por parte de Percona. Serán más herramientas centrado en características MariaDB convirtiéndose pronto?

¿Qué va a MariaDB hacer? Bueno, el control de la tasa de crecimiento de los insectos en la base de datos de errores MariaDB ayudará a mostrar cómo muchas personas están empezando a tomar en MariaDB.
Will Maria en algún momento romper con las actualizaciones de código fuente de MySQL y continuar construye sólo con la comunidad y sus ingenieros?

Entonces, ¿qué pasa después? No lo sabemos. Corresponde a la comunidad de código abierto. Una gran cantidad de voces airadas se había dirigido a Oracle en los últimos años. Entonces, ¿cómo esas voces cambian o mostrar apoyo a MariaDB pronto está por verse. Mientras que muchos de ellos probablemente ya apoyar MariaDB, es la adopción de las masas que mostrarán qué tan bien MariaDB hace en relación a MySQL. Muchas empresas saben el nombre MySQL y se atreven a ir a MariaDB (Esto me pasó a mí el otro día.). Así que el trabajo de MariaDB aún no ha terminado.
Y sin embargo, después de todo esto ... Oracle, Red Hat y Google todavía se unen para ayudar al gobierno a nosotros .