Uraaa... MySQL 4.1.7... este de ieri 27-OCT-2004 RECOMENDED!
Moderatori: Zamolxe, Moderatori
-
Radical
- Senior Member
- Mesaje: 327
- Membru din: Lun Feb 16, 2004 2:40 pm
- Localitate: Bucuresti
- Contact:
Uraaa... MySQL 4.1.7... este de ieri 27-OCT-2004 RECOMENDED!
Pentru ca eu astept versiunea 4.1.xx de mult prea mult timp sunt mai mult decat incantat !
Am sa fac mai jos o trecere in revista a noutatilor considerate de mine importante de la versiunea 4.0 !
(evident in RO... originalele in EN le gasiti de la pana la schimband ultima cifra din url !)
MySQL 4.1.0
- Suport pentru CHARSET si COLLATION... care pana acuma lipsea cu desavarsire... se pot specifica pe baza de date... pe tabel sau chiar pe coloana !
- Functii noi CHARSET() si COLLATION() care intorc setul de caractere respectiv subsetul de caractere
- Posibilitatea de a seta o coloana la valoarea default folosind DEFAULT(col_name)
- verificarea pe DATE/DATETIME este putin mai stricta
- server side help pentru functiile MySQL
- replicarea se face corect daca se foloseste RAND() si mai nou merge si cu variabile definite de utilizator @var.
- DROP TEMPORARY TABLE doar sterge tabelul temporar... nu face termina tranzactia
- coloanele TIMESTAMP sunt acum SQL compatibile... si deci nu mai sunt suportate coloane TIMESTAMP de lungimi diferite si sunt returnate in formatul 'YYYY-MM-DD HH:MM:SS'
- multiple cereri... acum puteti trimite catre server in aceeasi request mai multe cereri SQL folosind ';' ca separator...
- pentru compatibilitate cu alte baze de date la cereri SELECt care nu au nevoie de un tabel se poate adauga 'FROM DUAL' pentru a fi compatibil...
- coloanele specificate CHAR sau VARCHAR mai mari de 255 sunt convertite automat in BLOB respectiv TEXT
- nou cuvand rezervat DIV pentru ca au fost introdusi operatorii MOD si DIV
- Subqueries: SELECT * from t1 where t1.a=(SELECT t2.b FROM t2) !!!MORTAL!!!!
- Tabele derivate: SELECT a.col1, b.col2 FROM (SELECT MAX(col1) AS col1 FROM root_table) a, other_table b WHERE a.col1=b.col1;
- suport UTF8 ... complet
- comentariu pentru fiecare coloana... care pot fi vazute cu SHOW FULL COLUMNS FROM tbl_name
- ALTER DATABASE... asta da... de mult dorita !
- suport pentru GIS vezi:
- SHOW [COUNT(*)] WARNINGS - pentru a obtine ultimele erori... nu numai ultima eroare ca pana acuma !
- la CREATE TABLE ... SELECT poti specifica tipul coloanei in noul tabel: CREATE TABLE foo (a TINYINT NOT NULL) SELECT b+1 AS a FROM bar;
- functie noua VARIANCE
- CREATE TABLE new_table LIKE existent_table - creaza mult mai repede un tabel...
MySQL 4.1.1
- multiple tablespaces pentru innoDB
- optiunea IGNORE pentru DELETE
- MATCH ... AGAINST( ... WITH QUERY EXPANSION)
- full text suporta acuma UTF8 si nu numai
- replicarea prin SSL... excelent pentru cei care folosesc replicare!
- coloanele CHAR, VARCHAR, si TEXT sunt masurate in caractere nu in bytes ca pana acuma !
- LIMIT nu mai accepta valori negative
- ATENTIE - parolele au acuma 41 caractere... atentie mare cu PHP... caci poti aparea erori... "Client... does not support authentication... consider upgradin client"
- functii noi: ADDTIME(), DATE(), DATEDIFF(), LAST_DAY(), MAKEDATE(), MAKETIME(), MICROSECOND(), SUBTIME(), TIME(), TIMEDIFF(), TIMESTAMP(), UTC_DATE(), UTC_TIME(), UTC_TIMESTAMP(), si WEEKOFYEAR()
- ANALYZE TABLE, OPTIMIZE TABLE, REPAIR TABLE, si FLUSH sunt memorate in binary-log si deci replicate si ele.
MySQL 4.1.2
- CURRENT_TIMESTAMP poate fi valoare default pentru coloane de tip TIMESTAMP... astfel coloana (un per tabel) se modifica singura la modificarea randului. Pana acuma prima coloana de tip TIMESTAMP NOT NULL fara o valoare DEFAULT dintr-un tabel avea acest comportament... acuma puteti opri acest comportament.. .sau chiar sa il mutati pe o coloana ulterioara !
- suport pentru seturi de caractere extins si pe InnoDB
- avem un nou maximum petnru indecsi... max 64 indecsi per tabel
MySQL 4.1.3
- prepared statements...
- Subseturi de caractere (collations) pentru multe altele si inclusiv RO. Uraaaaaaa ! Acuma facem diferenta intre aâã sau intre ºs sau intre þt...
- suport pentru time-zone
MySQL 4.1.6
- TIMESTAMP poate memora NULL... dar trebuie specificat clar... petnru ca spre deosebire de majoritatea aceste coloane nu iau default valoare NULL
MySQL 4.1.7
RECOMENDED de ieri 27 oct 2004.
In linii mari avem:
* Suport pentru subqueries si tabele derivate
* Optimizari viteza
- protocol server/client mai rapid
- index BTREE petnru tabele HEAP tables
* Functionalitati noi
- CREATE TABLE tbl_name2 LIKE tbl_name1
- OpenGIS
- Replicari prin SSL
* Implementari de standarde si compatibilitati la migrare
- SHOW WARNINGS
* International si/sau Local
- Suport Unicode prin utf8 si ucs2
- Character sets can be defined per column, table, and database. This allows for a high degree of flexibility in application design, particularly for multi-language Web sites.
- time-zone
* Usability enhancements
- comenzi HELP oferite de server
- in mysql_query() se pot rula mai multe cereri Ex: mysql_query("CREATE TABLE x SELECT * FROM y WHERE k>5; SELECT * FROM x;");
- o noua sintaxa pentru INSERT ... ON DUPLICATE KEY UPDATE
- o noua functie GROUP_CONCAT()
- un nou modificator pentru GROUP BY "WITH ROLLUP" care face chestii super beton (il gasitit la sectiunea 13.9.2 GROUP BY Modifiers) !
Am sa fac mai jos o trecere in revista a noutatilor considerate de mine importante de la versiunea 4.0 !
(evident in RO... originalele in EN le gasiti de la pana la schimband ultima cifra din url !)
MySQL 4.1.0
- Suport pentru CHARSET si COLLATION... care pana acuma lipsea cu desavarsire... se pot specifica pe baza de date... pe tabel sau chiar pe coloana !
- Functii noi CHARSET() si COLLATION() care intorc setul de caractere respectiv subsetul de caractere
- Posibilitatea de a seta o coloana la valoarea default folosind DEFAULT(col_name)
- verificarea pe DATE/DATETIME este putin mai stricta
- server side help pentru functiile MySQL
- replicarea se face corect daca se foloseste RAND() si mai nou merge si cu variabile definite de utilizator @var.
- DROP TEMPORARY TABLE doar sterge tabelul temporar... nu face termina tranzactia
- coloanele TIMESTAMP sunt acum SQL compatibile... si deci nu mai sunt suportate coloane TIMESTAMP de lungimi diferite si sunt returnate in formatul 'YYYY-MM-DD HH:MM:SS'
- multiple cereri... acum puteti trimite catre server in aceeasi request mai multe cereri SQL folosind ';' ca separator...
- pentru compatibilitate cu alte baze de date la cereri SELECt care nu au nevoie de un tabel se poate adauga 'FROM DUAL' pentru a fi compatibil...
- coloanele specificate CHAR sau VARCHAR mai mari de 255 sunt convertite automat in BLOB respectiv TEXT
- nou cuvand rezervat DIV pentru ca au fost introdusi operatorii MOD si DIV
- Subqueries: SELECT * from t1 where t1.a=(SELECT t2.b FROM t2) !!!MORTAL!!!!
- Tabele derivate: SELECT a.col1, b.col2 FROM (SELECT MAX(col1) AS col1 FROM root_table) a, other_table b WHERE a.col1=b.col1;
- suport UTF8 ... complet
- comentariu pentru fiecare coloana... care pot fi vazute cu SHOW FULL COLUMNS FROM tbl_name
- ALTER DATABASE... asta da... de mult dorita !
- suport pentru GIS vezi:
- SHOW [COUNT(*)] WARNINGS - pentru a obtine ultimele erori... nu numai ultima eroare ca pana acuma !
- la CREATE TABLE ... SELECT poti specifica tipul coloanei in noul tabel: CREATE TABLE foo (a TINYINT NOT NULL) SELECT b+1 AS a FROM bar;
- functie noua VARIANCE
- CREATE TABLE new_table LIKE existent_table - creaza mult mai repede un tabel...
MySQL 4.1.1
- multiple tablespaces pentru innoDB
- optiunea IGNORE pentru DELETE
- MATCH ... AGAINST( ... WITH QUERY EXPANSION)
- full text suporta acuma UTF8 si nu numai
- replicarea prin SSL... excelent pentru cei care folosesc replicare!
- coloanele CHAR, VARCHAR, si TEXT sunt masurate in caractere nu in bytes ca pana acuma !
- LIMIT nu mai accepta valori negative
- ATENTIE - parolele au acuma 41 caractere... atentie mare cu PHP... caci poti aparea erori... "Client... does not support authentication... consider upgradin client"
- functii noi: ADDTIME(), DATE(), DATEDIFF(), LAST_DAY(), MAKEDATE(), MAKETIME(), MICROSECOND(), SUBTIME(), TIME(), TIMEDIFF(), TIMESTAMP(), UTC_DATE(), UTC_TIME(), UTC_TIMESTAMP(), si WEEKOFYEAR()
- ANALYZE TABLE, OPTIMIZE TABLE, REPAIR TABLE, si FLUSH sunt memorate in binary-log si deci replicate si ele.
MySQL 4.1.2
- CURRENT_TIMESTAMP poate fi valoare default pentru coloane de tip TIMESTAMP... astfel coloana (un per tabel) se modifica singura la modificarea randului. Pana acuma prima coloana de tip TIMESTAMP NOT NULL fara o valoare DEFAULT dintr-un tabel avea acest comportament... acuma puteti opri acest comportament.. .sau chiar sa il mutati pe o coloana ulterioara !
- suport pentru seturi de caractere extins si pe InnoDB
- avem un nou maximum petnru indecsi... max 64 indecsi per tabel
MySQL 4.1.3
- prepared statements...
- Subseturi de caractere (collations) pentru multe altele si inclusiv RO. Uraaaaaaa ! Acuma facem diferenta intre aâã sau intre ºs sau intre þt...
- suport pentru time-zone
MySQL 4.1.6
- TIMESTAMP poate memora NULL... dar trebuie specificat clar... petnru ca spre deosebire de majoritatea aceste coloane nu iau default valoare NULL
MySQL 4.1.7
RECOMENDED de ieri 27 oct 2004.
In linii mari avem:
* Suport pentru subqueries si tabele derivate
* Optimizari viteza
- protocol server/client mai rapid
- index BTREE petnru tabele HEAP tables
* Functionalitati noi
- CREATE TABLE tbl_name2 LIKE tbl_name1
- OpenGIS
- Replicari prin SSL
* Implementari de standarde si compatibilitati la migrare
- SHOW WARNINGS
* International si/sau Local
- Suport Unicode prin utf8 si ucs2
- Character sets can be defined per column, table, and database. This allows for a high degree of flexibility in application design, particularly for multi-language Web sites.
- time-zone
* Usability enhancements
- comenzi HELP oferite de server
- in mysql_query() se pot rula mai multe cereri Ex: mysql_query("CREATE TABLE x SELECT * FROM y WHERE k>5; SELECT * FROM x;");
- o noua sintaxa pentru INSERT ... ON DUPLICATE KEY UPDATE
- o noua functie GROUP_CONCAT()
- un nou modificator pentru GROUP BY "WITH ROLLUP" care face chestii super beton (il gasitit la sectiunea 13.9.2 GROUP BY Modifiers) !
-
Radical
- Senior Member
- Mesaje: 327
- Membru din: Lun Feb 16, 2004 2:40 pm
- Localitate: Bucuresti
- Contact:
cristi: cu placere !
ExcalIbvr: Este o neintelegere care cred eu o sa devina 'standard'...
Functiile PHP nu se schimba... ci apar altele noi care intr-un fel le dubleaza pe cele vechi...
Vechea extensie ramane si apare una noua sub numele mysqli... adica 'mysql improved'. Ramane pentru ca mai sunt site-uri care folosesc servere MySQL mai batranele... asa ar fi fost si al meu care ramanea si acuma pe un 3.32.xx daca nu faceam urat la sysAdmin... si pana la urma tot eu am instalat eu 4.0.18... si de Luni iau si locul sysAdmin-ului
...
Aceasta noua extensie modifica mai multe chestii... iti ofera acces din PHP la muuuuult mai multe functii API ale MySQL-ului... deci daca nu sunt documentate sau daca vrei documentatia functiilor din PHP... te poti uita chiar in manualul MySQL la sectiunea 'MySQL API' pentru ca de fapt ele exista in MySQL si PHP doar le apeleaza... evident cu modificari (cast pe tipuri... si altele... datorita limitarilor PHP).
ATENTIE ! pentru vechea extensie... cel mai des intalnit mesaj de eroare o sa fie
"Client does not suport authenitfication protocol requested by server; consider upgrading MySQL client"
Motivatia... e simpla... extensia MySQL si (din pacate si) extensia MySQLi folosesc clienti vechi, prima un client MySQL 3.xx si cea de a doua 4.0.xx ... intre timp cei de la MySQL au schimbat outputul functiei PASSWORD din MySQL.
Fix: in my.ini sau my.cnf la sectiunea [mysqld] adaugati
old-passwords
Reporniti serverul conectati-va la MySQL folosind clientul bundeled... si va uitati in baza de date mysql la tabelul user si pentru fiecare utilizator urmariti parola... daca incepe cu * trebuie sa o schimbati(resetati) folosid functia OLD_PASSWORD.
Ex: UPDATE user SET Password=OLD_PASSWORD('NewPassword') WHERE ....;
MULTA BAFTA !
Eu am folosit MySQL 4.1.6 (la-m instalat pe PC in ziua in care 4.1.7 devenea recomended... fara sa stiu asta !) si PHP 5.0.2 !
Merge excelent !
....................... Sau cel putin eu sunt multumit !
ExcalIbvr: Este o neintelegere care cred eu o sa devina 'standard'...
Functiile PHP nu se schimba... ci apar altele noi care intr-un fel le dubleaza pe cele vechi...
Vechea extensie ramane si apare una noua sub numele mysqli... adica 'mysql improved'. Ramane pentru ca mai sunt site-uri care folosesc servere MySQL mai batranele... asa ar fi fost si al meu care ramanea si acuma pe un 3.32.xx daca nu faceam urat la sysAdmin... si pana la urma tot eu am instalat eu 4.0.18... si de Luni iau si locul sysAdmin-ului
Aceasta noua extensie modifica mai multe chestii... iti ofera acces din PHP la muuuuult mai multe functii API ale MySQL-ului... deci daca nu sunt documentate sau daca vrei documentatia functiilor din PHP... te poti uita chiar in manualul MySQL la sectiunea 'MySQL API' pentru ca de fapt ele exista in MySQL si PHP doar le apeleaza... evident cu modificari (cast pe tipuri... si altele... datorita limitarilor PHP).
ATENTIE ! pentru vechea extensie... cel mai des intalnit mesaj de eroare o sa fie
"Client does not suport authenitfication protocol requested by server; consider upgrading MySQL client"
Motivatia... e simpla... extensia MySQL si (din pacate si) extensia MySQLi folosesc clienti vechi, prima un client MySQL 3.xx si cea de a doua 4.0.xx ... intre timp cei de la MySQL au schimbat outputul functiei PASSWORD din MySQL.
Fix: in my.ini sau my.cnf la sectiunea [mysqld] adaugati
old-passwords
Reporniti serverul conectati-va la MySQL folosind clientul bundeled... si va uitati in baza de date mysql la tabelul user si pentru fiecare utilizator urmariti parola... daca incepe cu * trebuie sa o schimbati(resetati) folosid functia OLD_PASSWORD.
Ex: UPDATE user SET Password=OLD_PASSWORD('NewPassword') WHERE ....;
MULTA BAFTA !
Eu am folosit MySQL 4.1.6 (la-m instalat pe PC in ziua in care 4.1.7 devenea recomended... fara sa stiu asta !) si PHP 5.0.2 !
Merge excelent !
....................... Sau cel putin eu sunt multumit !
Am reusit sa pornesc serverul cu "old-passwords" si merge OK.
Totusi, cum ma pot conecta la o BD cu noua parola din MySQL 4.1.7?
Sunt alte comenzi in PHP pentru conectare la BD sau trebuiesc adaugate noi optiuni in "php.ini" si "my.ini"?
Nu cred ca au facut degeaba noua parola care pana acum nu am reusit sa o folosesc. Sau poate este nevoie de PHP 5?
Totusi, cum ma pot conecta la o BD cu noua parola din MySQL 4.1.7?
Sunt alte comenzi in PHP pentru conectare la BD sau trebuiesc adaugate noi optiuni in "php.ini" si "my.ini"?
Nu cred ca au facut degeaba noua parola care pana acum nu am reusit sa o folosesc. Sau poate este nevoie de PHP 5?
-
Radical
- Senior Member
- Mesaje: 327
- Membru din: Lun Feb 16, 2004 2:40 pm
- Localitate: Bucuresti
- Contact:
Cu mici tweaks merge excelent pe PHP 4.3.x.
Faptul ca nu stie una si alalalt site alta... este relevant numai in functie de ce vrei a faci cu respectivul server de baze de date...
Take a look at http://dev.mysql.com/tech-resources/features.html ... acolo poti face un "feature comparison"...
Eu unul sunt mai mult decat multumit !
Faptul ca nu stie una si alalalt site alta... este relevant numai in functie de ce vrei a faci cu respectivul server de baze de date...
Take a look at http://dev.mysql.com/tech-resources/features.html ... acolo poti face un "feature comparison"...
Eu unul sunt mai mult decat multumit !
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 10 vizitatori
