marți, noiembrie 04, 2008

How to change ROOT password when it is lost on Red Hat

1. Reboot your system
2. When GRUB bootloader appear select "e" to edit boot options
3. Select to boot with following options: kernel /vmlinuz-2.4.21-20.EL ro root=LABEL=/ single , the word single need to be added at the end so you will boot in singlemode
4. When command shell appears go to: cd /etc
5. Using vi or other editors avilable select to edit passwd file, vi passwd
6. Look in the file for the line root:x:0:0:root:/root:/bin/bash and replace it with root::0:0:root:/root:/bin/bash, replace "x" with empty
7. Reboot in normal mode
8. When asking to enter the username, enter root username it will login without password, now useing command passwd enter the new password
9.

vineri, octombrie 03, 2008

O metoda de a migra datele din Mysql Latin1 in Mysql utf8

Scriptul tabelelor latin1 si utf8:
--
-- Structura de tabel pentru tabelul `latin1`
--
CREATE TABLE IF NOT EXISTS `latin1` (
`id` int(10) unsigned NOT NULL auto_increment,
`n` varchar(45) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;

-- --------------------------------------------------------

--
-- Structura de tabel pentru tabelul `utf8`
--

CREATE TABLE IF NOT EXISTS `utf8` (
`id` int(10) unsigned NOT NULL auto_increment,
`n` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=48 ;


Scriptul PHP de migrare a datelor:

<?php
header('Content-type: text/html; charset="utf-8"');
$link=mysql_connect (server, user, pass);
mysql_select_db (database);

$charset1 = mysql_client_encoding($link);

mysql_query("SET CHARACTER SET utf8", $link);
mysql_query("SET NAMES 'utf8'", $link);

$charset2 = mysql_client_encoding($link);

//test posting

if ($_POST["name"]){
$n=$_POST["name"];
$s="insert into latin1(n) values('".$n."')";
mysql_query("SET NAMES 'latin1'");
mysql_query($s);
$s="insert into utf8(n) values('".$n."')";
mysql_query("SET NAMES 'utf8'");
mysql_query($s);
}
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">";
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";

echo "<head>\n";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n";
echo "</head>\n";
echo "<body>\n";
echo "<form method=\"post\" name=\"form\" action=\"utf8.php\">\n";
echo "<input type=text name=name>";
echo "<input type=submit>";
echo "</form>";
echo "<table border=1>";
echo "Setul de caractere pina la SET CHARSET este: $charset1<br>";
echo "Setul de caractere dupa SET CHARSET este: $charset2<br>";

echo "<table border=1>\n";
$s="select * from latin1";
mysql_query("SET NAMES 'latin1'");
$r=mysql_query($s);
while ($row=mysql_fetch_assoc($r)){
echo "<tr><td>".$row["n"]."</td></tr>";
$s="insert into utf8(n) values('".$row["n"]."')";
mysql_query("SET NAMES 'utf8'");
mysql_query($s);
}
echo "</table>";

echo "</body>\n";
echo "</html>\n";
?>

joi, septembrie 25, 2008

Problema Diacriticilor sau cum sa Internationalizam site-urile in php

Des întălnesc site-uri unde exista problemă de afișare a diacriticilor Ă,Î,Ș,Ț,Â. Sau probleme în afișarea a diferitor limibi in paralel pe aceași pagină web.

În continuare va propun o soluție la aceasta problema pentru site-uri scrise in php care folosesc MySQL ca baza de date pentru a stoca informatia de pe site.

Este necesar ca:
SERVER Connection Collation sa fie egal cu utf8_general_ci (vezi in setari la server)
DATABASE CHARACTER SET sa fie egal cu UTF8
Database Collation sa fie egala cu utf8_general_ci

Vezi mai jos schema bazei de date

--
-- Baza de date: `dbtest`
--
CREATE DATABASE `dbtest` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

USE `dbtest`;
--
-- Structura de tabel pentru tabelul `tbtest`
--
CREATE TABLE IF NOT EXISTS `tbtest`
( `id` int(11) NOT NULL,
`text` varchar(1000) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Pentru afisarea datelor din baza de date in pagina php ne conducem dupa exemplul urmator:

<?php
header('Content-type: text/html; charset="utf-8"');
$link=mysql_connect (server, user, pass);
mysql_select_db(dbtest);

$charset = mysql_client_encoding($link);
mysql_query("SET CHARACTER SET 'utf8'", $link);


echo "<html>\n";
echo "<head>\n";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n";
echo "</head>\n";
echo "<body>\n";
echo "Setul de caractere curent este: $charset\n";

$sql = "select * from tbtest";
$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) {
echo $row["text"]."<br>\n";
}

echo "</body>\n";
echo "</html>\n";
?>

luni, septembrie 22, 2008

SELECT SUM(of varchar type) FROM ...

Recent m-am ciocnit de asa o problema: Aveam tabela Items cu structura urmatoare: id int,name varchar(100) unde valorile in cimpul id si respectiv name se repetau. Problema consta in a extrage lista de id-uri unicale unde name-ul sa constaie din suma de name-uri delimitate prin ",". Mai jos va propun o solutie:


CREATE FUNCTION getName (@latlng varchar(510) )
RETURNS varchar(4000)
AS
BEGIN
declare @t as varchar(2000)
--SET @latlng='48.2016667|27.4158333'
SET @t = ''

select top 4 @t = @t + ' ' + full_name_nd from geocode_md_unicode1 where fc='P' and lat+'|'+long=@latlng

return @t
END



select latlng,dbo.getName(latlng) as nume1 from (
select lat+'|'+long as latlng from geocode_md_unicode as t1 where fc='P'
group by lat+'|'+long) as t2

miercuri, iulie 09, 2008

Intr-o Cafenea din Statia de autobuse Zatoca - Ucraina :)

Cine a fost la Zatoca la Mare cu autobusul, presupun că a intrat prin "zabigalovca" aceasta, în imagine se vede lavuarul la care clienţii pot să se spele pe mâini, şi pe faâa dacă doresc :), alături o imagine, publicitate ceva care foarte bine se combina :)

Membri

Comentarii