<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bogdan Turcanu &#187; mysql</title>
	<atom:link href="http://www.bogdanturcanu.ro/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bogdanturcanu.ro</link>
	<description>Bogdan Turcanu</description>
	<lastBuildDate>Tue, 31 Jan 2012 19:57:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>FreeBSD&#8211;Server FTP cu SSL/TLS si utilizatori virtuali</title>
		<link>http://www.bogdanturcanu.ro/freebsdserver-ftp-cu-ssltls-si-utilizatori-virtuali/</link>
		<comments>http://www.bogdanturcanu.ro/freebsdserver-ftp-cu-ssltls-si-utilizatori-virtuali/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 19:12:58 +0000</pubDate>
		<dc:creator>Bogdan Turcanu</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[pureftpd]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tutoriale]]></category>
		<category><![CDATA[utilizatori virtuali]]></category>

		<guid isPermaLink="false">http://www.bogdanturcanu.ro/?p=2209</guid>
		<description><![CDATA[În mod normal folosesc SCP pentru transferul fișierelor pe serverele mele, sau, foarte rar, activez pentru o scurta perioada de timp ftpd din /etc/inetd.conf. Se întâmplă să fie necesar să asigurăm pe mașina respectivă accesul prin protocolul FTP pentru mai mulți utilizatori, fiecare cu acces în directorul propriu. Doar pentru acest lucru nu are nici [...]]]></description>
			<content:encoded><![CDATA[<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Ffreebsdserver-ftp-cu-ssltls-si-utilizatori-virtuali%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/freebsdserver-ftp-cu-ssltls-si-utilizatori-virtuali/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Ffreebsdserver-ftp-cu-ssltls-si-utilizatori-virtuali%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
<p>În mod normal folosesc SCP pentru transferul fișierelor pe serverele mele, sau, foarte rar, activez pentru o scurta perioada de timp <em>ftpd</em> din /etc/<em>inetd.conf</em>.    <br />Se întâmplă să fie necesar să asigurăm pe mașina respectivă accesul prin protocolul FTP pentru mai mulți utilizatori, fiecare cu acces în directorul propriu. Doar pentru acest lucru nu are nici un rost să adăugăm utilizatori pe sistem ci putem folosi utilizatori virtuali. Bineînțeles că dorim ca aceștia să realizeze o conexiune sigură, fără riscul de a li intercepta datele (în special cele de autentificare) pe traseul dintre PC-ul lor și server. Pentru asta vom folosi SSL/TLS.    <br />Am testat și am în producție o soluție care răspunde cerințelor de mai sus folosind ca și server FTP software-ul <a href="http://www.pureftpd.org/project/pure-ftpd" target="_blank">pureftpd</a>, instalat pe <a href="http://www.bogdanturcanu.ro/tag/freebsd/">freeBSD</a>, din porturi.    <br />Începem:</p>
<p><strong>cd /usr/ports/ftp/pure-ftpd/     <br />make &amp;&amp; make install &amp;&amp; make clean</strong></p>
<p>Opțiunile de compilare le alegeți în funcție de necesități, eu am mers pe varianta fără suport LDAP, PostgreeSQL dar&#160; cu suport <em>MySQL</em>, PAM, <em>TLS</em>.    <br />După instalare, urmează partea frumoasă, de configurare. Pornim de la fișierul exemplu pe care îl adaptăm necesităților:</p>
<p><strong>cp /usr/local/etc/pure-ftpd.conf.sample /usr/local/etc/pure-ftpd.conf     <br />chmod 644 /usr/local/etc/pure-ftpd.conf</strong></p>
<p>Fișierul meu arată în modul următor:</p>
<p><strong>ChrootEveryone&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; yes     <br />BrokenClientsCompatibility&#160; no      <br />MaxClientsNumber&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10      <br />Daemonize&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; yes      <br />MaxClientsPerIP&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 5      <br />VerboseLog&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; no      <br />DisplayDotFiles&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; yes      <br />AnonymousOnly&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; no      <br />NoAnonymous&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; yes      <br />SyslogFacility&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ftp      <br />DontResolve&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; yes      <br />MaxIdleTime&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 15      <br />MySQLConfigFile&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; /usr/local/etc/pureftpd-mysql.conf      <br />AnonymousCanCreateDirs&#160;&#160;&#160;&#160;&#160; no      <br />Umask&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 133:022      <br />MinUID&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 100      <br />AllowUserFXP&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; no      <br />AllowAnonymousFXP&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; no      <br />ProhibitDotFilesWrite&#160;&#160;&#160;&#160;&#160;&#160; no      <br />ProhibitDotFilesRead&#160;&#160;&#160;&#160;&#160;&#160;&#160; no      <br />AutoRename&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; no      <br />AnonymousCantUpload&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; no      <br />CreateHomeDir&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; no      <br />MaxDiskUsage&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 99      <br />TLS&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2</strong></p>
<p>După cum se observa din fișierul de configurare vom stoca datele despre utilizatori într-o bază de date MySQL și vom permite conectarea acestora doar daca folosesc SSL/TLS.   <br />Următorul pas este să generăm certificatele pentru conexiunea securizată:    <br /><strong>mkdir –p /etc/ssl/private     <br />openssl req –x509 –nodes –newkey rsa:1024 –keyout /etc/ssl/private/pure-ftpd.pem –out /etc/ssl/private/pure-ftpd.pem      <br />chmod 600 /etc/ssl/private/*.pem      <br /></strong>Avem nevoie în continuare de o baza de date în care să stocăm informațiile despre utilizatorii virtuali. Vom crea baza de date <em>ftpdb</em> și un utilzator mysql <em>ftpdbuser</em> cu parola <em>ftpdbpass</em>, care se poate conecta de pe <em>localhost</em> și are drepturi depline la această bază de date:    <br /><strong>mysql –u root –p     <br />CREATE DATABASE ftpdb;      <br />GRANT ALL PRIVILEGES ON ftpdb.* to </strong><strong>‘</strong><strong>ftpdbuser’@’localhost</strong><strong>’</strong><strong> IDENTIFIED BY ‘ftpdbpass’;     <br />FLUSH PRIVILEGES;      <br />quit;      <br /></strong>Pentru stocarea datelor avem nevoie de un tabel, pe care îl creem cu structura de mai jos:    <br /><strong>mysql –u root –p     <br />USE ftpdb;      <br />CREATE TABLE ftpd (      <br />User varchar(16) NOT NULL default ”,      <br />status enum(’0′,’1′) NOT NULL default ’0′,      <br />Password varchar(64) NOT NULL default ”,      <br />Uid varchar(11) NOT NULL default ‘-1′,      <br />Gid varchar(11) NOT NULL default ‘-1′,      <br />Dir varchar(128) NOT NULL default ”,      <br />ULBandwidth smallint(5) NOT NULL default ’0′,      <br />DLBandwidth smallint(5) NOT NULL default ’0′,      <br />comment tinytext NOT NULL,      <br />ipaccess varchar(15) NOT NULL default ‘*’,      <br />QuotaSize smallint(5) NOT NULL default ’0′,      <br />QuotaFiles int(11) NOT NULL default 0,      <br />PRIMARY KEY (User),      <br />UNIQUE KEY User (User)      <br />) ENGINE=MyISAM;      <br />quit;</strong>    <br />Atentie, daca folosiți o versiune mai veche a serverului MySQL va fi cazul să înlocuiți <em>ENGINE</em> cu <em>TYPE</em>.    <br />Ținând cont că utilizatorii noștri sunt virtuali, trebuie să definim un grup și un utilizator de sistem pentru a putea aloca drepturi de scriere în sistemul de fișiere, rulând următoarele comenzi în terminal/consolă:    <br /><strong>pw groupadd ftpgroup     <br />pw useradd ftpusers –c “Virtual FTP Users” –g ftpgroup –d /dev/null –s /sbin/nologin      <br /></strong>Verificăm ce UID și GID au fost alocate de către sistem utilizatorului <em>ftpusers</em> și grupului <em>ftpgroup</em> consultând fișierele <em>/etc/group</em> și <em>/etc/passwd</em> sau, mai simplu, folosind comanda <em>id</em>:    <br /><strong>id ftpusers     <br /></strong>care a returnat în cazul meu:    <br /><strong>uid=1002(ftpusers) gid=1001(ftpgroup) groups=1001(ftpgroup)     <br /></strong>Vom introduce în baza de date informațiile despre utilizatori, de exemplu:    <br /><strong>mysql –u root –p     <br />use ftpdb;      <br />INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES (‘utilizatortest’, ’1′, MD5(‘parolatest’), ’1001′, ’1002′, ‘/data/director_utilizator’, ’400′, ’800′, ”, ‘*’, ’150′, ’0′);      <br />quit;</strong>    <br />Avem acum utilizatorul <em>utilizatortest</em> cu parola <em>parolatest</em>, status <em>1</em>, ce semnifica faptul că este activ contul, UID <em>1001</em> și GID <em>1002</em> (atentie, trebuie să fie cele obținute mai sus), cu directorul radacina <em>/data/director_utilizator</em>, viteza maxima de upload <em>400KB/sec</em> (kilo-octeti pe secunda) si viteza maxima de download <em>800KB/s</em>. Spatiul maxim pe care il pot ocupa toate fișierele pe care le pune pe server este de <em>150MB</em>.    <br />Ce a mai rămas? Păi trebuie să configurăm în continuare serviciul pureftpd pentru folosirea informațiilor din baza de date. Fișierul meu arată în felul următor:    <br /><strong>MYSQLServer&#160;&#160;&#160;&#160; 127.0.0.1     <br />MYSQLPort&#160;&#160;&#160;&#160;&#160;&#160; 3306      <br />MYSQLUser&#160;&#160;&#160;&#160;&#160; ftpdbuser      <br />MYSQLPassword&#160;&#160; ftpdbpass      <br />MYSQLDatabase&#160;&#160; ftpdb      <br />MYSQLCrypt&#160;&#160;&#160;&#160;&#160; md5      <br />MYSQLGetPW&#160;&#160;&#160;&#160;&#160; SELECT Password FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)      <br />MYSQLGetUID&#160;&#160;&#160;&#160; SELECT Uid FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)      <br />MYSQLGetUID&#160;&#160;&#160;&#160; SELECT Uid FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)MYSQLGetGID&#160;&#160;&#160;&#160; SELECT Gid FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)MYSQLGetDir&#160;&#160;&#160;&#160; SELECT Dir FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)      <br />MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)      <br />MySQLGetQTASZ&#160;&#160; SELECT QuotaSize FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)      <br />MySQLGetQTAFS&#160;&#160; SELECT QuotaFiles FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)      <br /></strong>Vom crea directorul <em>/data/director_utilizator</em> și îi vom da permisiunile necesare pentru a putea fi folosit:    <br /><strong>mkidr /data/director_utilizator     <br />chown ftpusers:ftpgroup /data/director_utilizator      <br /></strong>Scriem în fișierul <em>/etc/rc.conf</em> următoarea linie:    <br /><strong>pureftpd_enable=&quot;YES&quot;     <br /></strong>și pornim serviciul:    <br /><strong>/usr/local/etc/rc.d/pure-ftpd start     <br /></strong>Acum ar trebui să avetm totul funcțional. NU uitați să activați <strong><u>opțiunea SSL în clientul de FTP</u></strong>, altfel nu va puteți conecta.</p>
<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Ffreebsdserver-ftp-cu-ssltls-si-utilizatori-virtuali%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/freebsdserver-ftp-cu-ssltls-si-utilizatori-virtuali/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Ffreebsdserver-ftp-cu-ssltls-si-utilizatori-virtuali%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bogdanturcanu.ro/freebsdserver-ftp-cu-ssltls-si-utilizatori-virtuali/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Imagini &#238;n baza de date</title>
		<link>http://www.bogdanturcanu.ro/imagini-n-baza-de-date/</link>
		<comments>http://www.bogdanturcanu.ro/imagini-n-baza-de-date/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 21:11:04 +0000</pubDate>
		<dc:creator>Bogdan Turcanu</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[blob]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql binary logging]]></category>
		<category><![CDATA[stocare fisiere]]></category>
		<category><![CDATA[tabele]]></category>

		<guid isPermaLink="false">http://www.bogdanturcanu.ro/imagini-n-baza-de-date/</guid>
		<description><![CDATA[Zilele acestea am transferat site-ul forumsuceava.com de pe o platforma software pe alta (phpBB3 la vbulletin). Nu a fost ușor. Problemele întâmpinate au fost legate de importul fișierelor atașate. Prima problemă a fost ridicată de către versiunea 4.x a vbulletin care a modificat structura bazei de date fața de versiunile anterioare și a trebuit să [...]]]></description>
			<content:encoded><![CDATA[<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fimagini-n-baza-de-date%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/imagini-n-baza-de-date/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fimagini-n-baza-de-date%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
<p>Zilele acestea am transferat site-ul <a href="http://www.forumsuceava.com" target="_blank">forumsuceava.com</a> de pe o platforma software pe alta (phpBB3 la vbulletin). Nu a fost ușor.    <br />Problemele întâmpinate au fost legate de importul fișierelor atașate. Prima problemă a fost ridicată de către versiunea 4.x a vbulletin care a modificat structura bazei de date fața de versiunile anterioare și a trebuit să „mânăresc” scriptul Impex de import prin modificarea interogărilor și alte variabile pe acolo. Să vezi apoi bucurie când am avut în sfârșit toate atașamentele importate (circa 30.000 de fișiere, dimensiune totală 10GB).&#160; Nu vă imaginați cum mergeau interogările în această bază de date de peste 10GB, reușind să îmi ducă utilizarea hard-disc-ului la 100%.&#160; <br />Acest lucru, împreună cu faptul că aveam activat la serviciul MySQL opțiunea „ <strong>binary logging</strong> ” îmi omora mașina, utilizatorii site-ului având de suferit, prin erori la accesare.    <br />Am purces așadar la:    <br />- mutarea imagini atașate în fișiere pe disc;    <br />- dezactivare log în serviciul MySQL.    <br />Nu vreți să vă imaginați cât a durat importul a 30.000 de fișiere în baza de date și apoi mutarea acestora pe hard-disc.    <br />Pot să dau acum câteva sfaturi utile:</p>
<ul>
<li>recomand dezactivare „ <strong>binary logging</strong>” pentru serviciul MySQL dacă nu folosiți replicare, lucru care poate fi efectuat în două moduri: 1) comentarea opțiunilor „<strong>log-bin”</strong> și „<strong>binlog_format”</strong> din fișierul de configurare și repornirea serviciului sau 2) executând interogare „<strong>set sql_log_bin=0;”</strong> – pentru modificarea comportamentului în timpul funcționării serviciului, fără a fi necesar restart, dar care este valabilă doar până la repornirea serviciului.</li>
<li>în cazul in care nu aveți foarte multe fișiere este preferabilă stocarea acestora pe disc, nu în câmpuri de tip „blob” în tabelele bazei de date.</li>
</ul>
<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fimagini-n-baza-de-date%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/imagini-n-baza-de-date/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fimagini-n-baza-de-date%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bogdanturcanu.ro/imagini-n-baza-de-date/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FreeBSD &#8211; eroare mysql</title>
		<link>http://www.bogdanturcanu.ro/freebsd-eroare-mysql/</link>
		<comments>http://www.bogdanturcanu.ro/freebsd-eroare-mysql/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 11:40:15 +0000</pubDate>
		<dc:creator>Bogdan Turcanu</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[baze de date]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[tcp wrappers]]></category>
		<category><![CDATA[tutorile]]></category>

		<guid isPermaLink="false">http://www.bogdanturcanu.ro/freebsd-eroare-mysql/</guid>
		<description><![CDATA[Am setat o nouă mașina pe care rulează freeBSD. Printre serviciile de care aveam nevoie se numără și MySQL. Instalat, configurat MySQL, adăugat utilizatori, setat drepturi și permisiuni, dar am avut parte de o surpriză: atunci când încercam să mă conectez de pe un alt host primeam, după introducerea parolei, mesajul de eroare: ERROR 2013 [...]]]></description>
			<content:encoded><![CDATA[<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Ffreebsd-eroare-mysql%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/freebsd-eroare-mysql/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Ffreebsd-eroare-mysql%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
<p>Am setat o nouă mașina pe care rulează <a href="http://www.bogdanturcanu.ro/tag/freebsd/">freeBSD</a>. Printre serviciile de care aveam nevoie se numără și MySQL. Instalat, configurat MySQL, adăugat utilizatori, setat drepturi și permisiuni, dar am avut parte de o surpriză: atunci când încercam să mă conectez de pe un alt host primeam, după introducerea parolei, mesajul de eroare:</p>
<p><em>ERROR 2013 (HY000): Lost connection to MySQL server at &#8216;reading initial communication packet&#8217;, system error: 0</em></p>
<p>Săpat câteva minute după soluție și.. problema era în fișierul /etc/hosts.allow. Aveam nevoie acolo de linia:</p>
<p><strong>mysqld: ALL: allow</strong></p>
<p>Done.</p>
<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Ffreebsd-eroare-mysql%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/freebsd-eroare-mysql/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Ffreebsd-eroare-mysql%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bogdanturcanu.ro/freebsd-eroare-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalare Apache, PHP si MySQL pe Fedora Core</title>
		<link>http://www.bogdanturcanu.ro/instalare-apache-php-si-mysql-pe-fedora-core/</link>
		<comments>http://www.bogdanturcanu.ro/instalare-apache-php-si-mysql-pe-fedora-core/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 18:26:57 +0000</pubDate>
		<dc:creator>Bogdan Turcanu</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[fedora core]]></category>
		<category><![CDATA[gazduire]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[pachete]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutoriale]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://www.bogdanturcanu.ro/instalare-apache-php-si-mysql-pe-fedora-core/</guid>
		<description><![CDATA[In randurile de mai jos va prezint pasii pentru instalarea componentelor necesare pentru gazduirea unui site dinamic care foloseste php si baze de date MySQL. Pentru a rezolva probleme legate de dependinte si pachete aditionale folosim yum. In primul rand trebuie sa instalam Apache (httpd), PHP, MySQL (client si server) si componenta care sa permita [...]]]></description>
			<content:encoded><![CDATA[<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Finstalare-apache-php-si-mysql-pe-fedora-core%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/instalare-apache-php-si-mysql-pe-fedora-core/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Finstalare-apache-php-si-mysql-pe-fedora-core%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
<p>In randurile de mai jos va prezint pasii pentru instalarea componentelor necesare pentru gazduirea unui site dinamic care foloseste php si baze de date MySQL. </p>
<p>Pentru a rezolva probleme legate de dependinte si pachete aditionale folosim yum. </p>
<p>In primul rand trebuie sa instalam Apache (httpd), PHP, MySQL (client si server) si componenta care sa permita comunicatia intre php si mysql: </p>
<p>yum -y install httpd php mysql mysql-server php-mysql </p>
<p>Urmeaza configurarea acestor servicii noi instalate pentru a porni odata cu bootarea sistemului: </p>
<p>/sbin/chkconfig httpd on   <br />/sbin/chkconfig mysqld on </p>
<p>Putem sa le pornim manual cu urmatoarele comenzi pentru a nu restarta acum sistemul: </p>
<p>/sbin/service httpd start   <br />/sbin/service mysqld start </p>
<p>NU uitati sa setati o parola pentru userul root la MySQL, in caz contrar orice utilizator de pe sistem are acces deplin la bazele voastre de date. Aceasta parola de root poate/trebuie sa fie diferita de parola utilizatorului root de pe sistem: </p>
<p>mysqladmin -u root password &#8216;parola-noua&#8217; ( atentie la semnele &#8216; &#8216; ) </p>
<p>Putem sa mai facem setari legate de securitate la MySQL: </p>
<p>mysql -u root -p   <br />mysql&gt; DROP DATABASE test;     <br />mysql&gt; DELETE FROM mysql.user WHERE user = &#8221;;     <br />mysql&gt; FLUSH PRIVILEGES; </p>
<p>Directorul implicit unde sunt fisierele servite de catre serverul web Apache este /var/www/html. In acest director putem creea de exemplu fisierul phpinfo.php in care punem urmatoarele linii cu scopul de test: </p>
<p>&lt;?php   <br />phpinfo();    <br />?&gt;</p>
<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Finstalare-apache-php-si-mysql-pe-fedora-core%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/instalare-apache-php-si-mysql-pe-fedora-core/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Finstalare-apache-php-si-mysql-pe-fedora-core%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bogdanturcanu.ro/instalare-apache-php-si-mysql-pe-fedora-core/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL &#8211; schimbarea parolei uitate pentru root</title>
		<link>http://www.bogdanturcanu.ro/mysql-schimbarea-parolei-uitate-pentru-root/</link>
		<comments>http://www.bogdanturcanu.ro/mysql-schimbarea-parolei-uitate-pentru-root/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 18:01:03 +0000</pubDate>
		<dc:creator>Bogdan Turcanu</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[parola root]]></category>
		<category><![CDATA[tutoriale]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.bogdanturcanu.ro/mysql-schimbarea-parolei-uitate-pentru-root/</guid>
		<description><![CDATA[In cazul in care nu ne mai amintim parola pentru userul root cu care sa ne conectam la serverul mysql care ruleaza pe localhost, puteam sa punem o noua parola urmand pasii de mai jos. 1. Se opreste serverul de mysql: /usr/local/etc/rc.d/mysql-server.sh stop 2. Se porneste serverul de mysql cu optiunea &#8211;skip-grant-tables /usr/local/bin/safe_mysqld &#8211;skip-grant-tables &#38; [...]]]></description>
			<content:encoded><![CDATA[<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fmysql-schimbarea-parolei-uitate-pentru-root%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/mysql-schimbarea-parolei-uitate-pentru-root/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fmysql-schimbarea-parolei-uitate-pentru-root%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
<p>In cazul in care nu ne mai amintim parola pentru userul root cu care sa ne conectam la serverul mysql care ruleaza pe localhost, puteam sa punem o noua parola urmand pasii de mai jos. </p>
<p>1. Se opreste serverul de mysql: </p>
<p>/usr/local/etc/rc.d/mysql-server.sh stop </p>
<p>2. Se porneste serverul de mysql cu optiunea &#8211;skip-grant-tables </p>
<p>/usr/local/bin/safe_mysqld &#8211;skip-grant-tables &amp; </p>
<p>3. Ne conectam la serverul mysql: </p>
<p>/usr/local/bin/mysql </p>
<p>4. Folosim baza de date mysql </p>
<p>use mysql; </p>
<p>5. Setam noua parola pentru userul root@localhost: </p>
<p>update user set password = password(&#8216;&#8230;&#8230;.&#8217;) where user = &#8216;root&#8217; and host=&#8217;localhost&#8217;; </p>
<p>6. Oprim serverul mysql cu comanda: </p>
<p>mysqladmin -u root -p shutdown </p>
<p>7. Pornim serverul mysql: </p>
<p>/usr/local/etc/rc.d/mysql-server.sh start </p>
<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fmysql-schimbarea-parolei-uitate-pentru-root%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/mysql-schimbarea-parolei-uitate-pentru-root/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fmysql-schimbarea-parolei-uitate-pentru-root%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bogdanturcanu.ro/mysql-schimbarea-parolei-uitate-pentru-root/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Squid &#8211; acces pe baza de utilizator si parola</title>
		<link>http://www.bogdanturcanu.ro/squid-acces-pe-baza-de-utilizator-si-parola/</link>
		<comments>http://www.bogdanturcanu.ro/squid-acces-pe-baza-de-utilizator-si-parola/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 17:50:56 +0000</pubDate>
		<dc:creator>Bogdan Turcanu</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[autentificare]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[program c]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[tutoriale]]></category>

		<guid isPermaLink="false">http://www.bogdanturcanu.ro/squid-acces-pe-baza-de-utilizator-si-parola/</guid>
		<description><![CDATA[Pentru a realiza o autentificare pe baza de utilizator si parola pentru proxy-ul vostru, puteti folosi programul de mai jos. Datele de autentificare sunt tinute intr-o baza de date mysql. Programul este realizat in C. Tot ce trebuie sa modificati este hostul la care se conecteaza (cel pe care ruleaza serverul de mysql), numele bazei [...]]]></description>
			<content:encoded><![CDATA[<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fsquid-acces-pe-baza-de-utilizator-si-parola%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/squid-acces-pe-baza-de-utilizator-si-parola/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fsquid-acces-pe-baza-de-utilizator-si-parola%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
<p>Pentru a realiza o autentificare pe baza de utilizator si parola pentru proxy-ul vostru, puteti folosi programul de mai jos. </p>
<p>Datele de autentificare sunt tinute intr-o baza de date mysql.   <br />Programul este realizat in C.    <br />Tot ce trebuie sa modificati este hostul la care se conecteaza (cel pe care ruleaza serverul de mysql), numele bazei de date, userul si parola pentru conectare la baza de date. Userul respectiv trebuie sa aiba cel putin drept de select in tabelul respectiv.    <br />Inainte de a utiliza programul trebuie sa va creati baza de date si/sau tabelul respectiv in aceasta. </p>
<p>1. Creati baza de date dorita, daca nu doriti sa utilizati una deja existenta: </p>
<p>CREATE DATABASE authproxy; </p>
<p>2. Creati tabelul in care se vor tine useri si parolele care se pot autentifica la proxy: </p>
<p>USE authproxy;   <br />CREATE TABLE autentificare (    <br />squid_utilizator VARCHAR(15) NOT NULL PRIMARY KEY,    <br />squid_parola VARCHAR(15) NOT NULL    <br />); </p>
<p>Este necesar sa pastrati denumirea tabelului si a campurilor squid_utilizator si squid_parola. </p>
<p>3. Inserati in tabelul respectiv o inregistrare de test: </p>
<p>INSERT INTO squid_users (squid_utilizator,squid_parola) VALUES (&#8216;usertest&#8217;,'parola&#8217;); </p>
<p>4. Copiati programul urmator intr-un fisier cu numele proxyauth.c </p>
<p>#include &lt;stdio.h&gt;   <br />#include &lt;string.h&gt;    <br />#include &lt;mysql.h&gt;    <br />MYSQL *conexiune, mysql;    <br />MYSQL_RES *rezultat;    <br />MYSQL_ROW linie;    <br />/* &#8212; Modifica aici &#8212; */    <br />char host[256]=&quot;localhost&quot;;    <br />char numedb[256]=&quot;squid&quot;;    <br />char userdb[256]=&quot;squid&quot;;    <br />char paroladb[256]=&quot;squid&quot;;    <br />/* &#8212; Nu modifica nimic mai jos de aceasta linie &#8212; */    <br />int main(int argc, char **argv)    <br />{    <br />char buf[256], *utilizator, *parola, *p, interogare[200], my_buf_utilizator[100], my_buf_parola[100];    <br />int state;    <br />setbuf(stdout, NULL);    <br />while (fgets(buf, 256, stdin) != NULL) {    <br />if ((p = strchr(buf, &#8216;\n&#8217;)) != NULL)    <br />*p = &#8216;\0&#8242;; /* strip \n */    <br />if ((utilizator = strtok(buf, &quot; &quot;)) == NULL) {    <br />printf(&quot;Eroare\n&quot;);    <br />continue;    <br />}    <br />if ((parola = strtok(NULL, &quot;&quot;)) == NULL) {    <br />printf(&quot;Eroare\n&quot;);    <br />continue;    <br />}    <br />mysql_init(&amp;mysql);    <br />conexiune = mysql_real_connect(&amp;mysql, host, userdb, paroladb,numedb, 0, 0, 0);    <br />(void) mysql_escape_string (my_buf_utilizator, utilizator, strlen (utilizator));    <br />(void) mysql_escape_string (my_buf_parola, parola, strlen (parola));    <br />sprintf (interogare, &quot;SELECT squid_utilizator FROM autentificare WHERE (squid_utilizator = &#8216;%s&#8217; &amp;&amp; squid_parola = &#8216;%s&#8217;)&quot;, my_buf_utilizator, my_buf_parola);    <br />state = mysql_query(conexiune, interogare);    <br />rezultat = mysql_store_result(conexiune);    <br />linie = mysql_fetch_row(rezultat);    <br />if (linie) {    <br />(void) printf(&quot;OK\n&quot;);    <br />} else {    <br />(void) printf(&quot;Eroare\n&quot;);    <br />}    <br />mysql_close(conexiune);    <br />}    <br />return 0;    <br />} </p>
<p>5. Modificati </p>
<p>char host[256]=&quot;localhost&quot;;   <br />char numedb[256]=&quot;authproxy&quot;;    <br />char userdb[256]=&quot;squid&quot;;    <br />char paroladb[256]=&quot;squid&quot;; </p>
<p>cu datele voastre, pentru a va putea conecta la baza de date. </p>
<p>6. Compialti fisierul: </p>
<p>gcc proxyauth.c -o proxyauth -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient </p>
<p>avand grija sa puneti caile corect, asa cum sunt ele in sistemul vostru. </p>
<p>7. Puneti in fisierul de configurare squid.conf urmatoarea linie: </p>
<p>auth_param basic program /calea/spre/executabilul/proxyauth </p>
<p>bineinteles cu calea corecta din sistemul vostru. </p>
<p>8. Restartati proxy-ul. (Reload nu este suficient) </p>
<p>Daca totul este in regula, atunci ar trebui sa apara in browser o fereastra ca si cea din figura de mai jos, in care trebuie sa introduceti userul si parola, in cazul nostru user: usertest si parola: parola </p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="authsquid" border="0" alt="authsquid" src="http://www.bogdanturcanu.ro/wp-content/uploads/2010/07/authsquid.jpg" width="244" height="209" /> </p>
<p>Atentie: In baza de date, parola se tine in clar! </p>
<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fsquid-acces-pe-baza-de-utilizator-si-parola%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/squid-acces-pe-baza-de-utilizator-si-parola/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fsquid-acces-pe-baza-de-utilizator-si-parola%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bogdanturcanu.ro/squid-acces-pe-baza-de-utilizator-si-parola/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logare mesaje server DHCP în baza de date MySQL</title>
		<link>http://www.bogdanturcanu.ro/logare-mesaje-server-dhcp-in-baza-de-date-mysql/</link>
		<comments>http://www.bogdanturcanu.ro/logare-mesaje-server-dhcp-in-baza-de-date-mysql/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 20:46:20 +0000</pubDate>
		<dc:creator>Bogdan Turcanu</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[baze de date]]></category>
		<category><![CDATA[dhcpd]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.bogdanturcanu.ro/?p=1746</guid>
		<description><![CDATA[Pentru serviciul DHCP folosesc în freeBSD portul isc-dhcpd-server. În mod implicit, fără nici o configurare mesajele sunt scrise în fișierul /var/log/messages. Folosind syslog-ul nativ cu care vine sistemul de operare putem să îl configurăm ca mesajele să fie scrise se exemplu în fișierul /var/log/dhcpd.log, în 4 pași ușori: ađaugăm în fîșierul de configurare /etc/syslog.conf liniile: [...]]]></description>
			<content:encoded><![CDATA[<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Flogare-mesaje-server-dhcp-in-baza-de-date-mysql%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/logare-mesaje-server-dhcp-in-baza-de-date-mysql/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Flogare-mesaje-server-dhcp-in-baza-de-date-mysql%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
<p>Pentru serviciul DHCP folosesc în <a href="http://www.freebsd.org" target="_blank">freeBSD</a> portul<a href="http://www.isc.org/software/dhcp" target="_blank"> isc-dhcpd-server</a>.<br />
În mod implicit, fără nici o configurare mesajele sunt scrise în fișierul <em>/var/log/messages</em>.<br />
Folosind <strong>syslog-ul nativ</strong> cu care vine sistemul de operare putem să îl configurăm ca mesajele să fie scrise se exemplu în fișierul <em>/var/log/dhcpd.log</em>, în 4 pași ușori:</p>
<ul>
<li>ađaugăm în fîșierul de configurare <em>/etc/syslog.conf</em> liniile:<br />
<strong>!dhcpd<br />
*.*                                             /var/log/dhcpd.log</strong></li>
<li>creem pe disc fișierul <em>/var/log/dhcpd.log</em> și îi dăm drepturile necesare (de exemplu 777):<br />
<strong>touch /var/log/dhcpd.log<br />
chmod 777 /var/log/dhcpd.log</strong></li>
<li>restartăm serviciul syslog:<br />
<strong>/etc/rc.d/syslogd restart</strong></li>
<li>restartăm serviciul dhcp:<br />
<strong>/usr/local/etc/rc.d/isc-dhcpd restart</strong></li>
</ul>
<p>În acest moment toate mesajele generate de către serviciul dhcp sunt scrise în fișierul <strong>/var/log/dhcpd.log</strong>.</p>
<p>Dacă dorim ca aceste mesaje să fie scrise într-o bază de date MySQL, lucrurile se complică. În mod nativ nici serviciul dhcp și nici serviciul syslog nu beneficiază de această opțiune.<br />
Una dintre solutii este înlocuirea serviciului syslog cu un alt software care să facă același lucru, dar să stie să lucreze cu baze de date MySQL. Am testat în această seara<a href="http://www.rsyslog.com/" target="_blank"> rsyslog</a>. Software-ul se găsește și în porturi. Instalarea facilă, ca la orice port:</p>
<p><strong>cd /usr/ports/sysutils/rsyslog5<br />
make<br />
make install<br />
make clean</strong></p>
<p>A fost necesară și instalarea extensiei pentru a putea funcționa cu baze de date MySQL:</p>
<p><strong>cd /usr/ports/sysutils/rsyslog5-mysql/<br />
make &amp;&amp; make install &amp;&amp; make clean</strong></p>
<p>Am adăugat apoi în rc.conf liniile următoare pentru a nu folosi serviciul syslog implicit ci pe cel proaspăt instalat:<br />
<strong>syslogd_enable=&#8221;NO&#8221;<br />
rsyslogd_enable=&#8221;YES&#8221;<br />
rsyslogd_flags=&#8221;-c5&#8243;</strong><br />
Vom configura apoi serviciul nou adăugând opțiunile necesare în fișierul <em>/usr/local/etc/rsyslog.conf</em>.<br />
În primul rând trebuie să adăugam opțiunea:<br />
<strong>$ModLoad ommysql # load MySQL functionality</strong><br />
ce permite funcționarea acestui software cu baze de date MySQL.<br />
Definim un template cu interogarea care o va efectua pentru inserarea informațiilor:<br />
<strong>$template bdsql,&#8221;insert into dhcp_log(data,mesaj) values(&#8216;%timegenerated%&#8217;,'%msg%&#8217;)&#8221;,SQL</strong><br />
Redirectăm apoi mesajele care conțin șirul &#8220;DHC&#8221; către baza de date, folosind date de autentificare adecvate (utilizator, parola, serverSQL):<br />
<strong>:msg, contains, &#8220;DHC&#8221;        <em>:</em>ommysql:server_sql,nume_baza_date,nume_utilizator,parola_utilizator;bdsql<br />
</strong>Bineînțeles că trebuie să creem baza de date (nume_baza_date) și tabelul (dhcp_log) cu câmpurile necesare precum și utilizatorul care să aiba dreptul de a scrie informațiile.<br />
Pornim apoi serviciul cu comanda:<br />
<strong>/usr/local/etc/rc.d/rsyslogd start</strong><br />
În acest moment ar trebui sa vedem îregistrări noi în baza de date dacă există mesaje de la serviciul dhcp. Folosind acest exemplu se loghează doar mesajele de tipul DHCPDISCOVER, DHCPOFFER, DHCPREQUEST, DHCPACK, etc, dar nu și alte mesaje de stare ( duplicate lease, etc).</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">http://www.isc.org/software/dhcp</div>
<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Flogare-mesaje-server-dhcp-in-baza-de-date-mysql%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/logare-mesaje-server-dhcp-in-baza-de-date-mysql/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Flogare-mesaje-server-dhcp-in-baza-de-date-mysql%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bogdanturcanu.ro/logare-mesaje-server-dhcp-in-baza-de-date-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux &amp; php &amp; cli &amp; rrdtool</title>
		<link>http://www.bogdanturcanu.ro/linux-php-cli-rrdtool/</link>
		<comments>http://www.bogdanturcanu.ro/linux-php-cli-rrdtool/#comments</comments>
		<pubDate>Mon, 31 May 2010 20:59:38 +0000</pubDate>
		<dc:creator>Bogdan Turcanu</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[cenos]]></category>
		<category><![CDATA[editor text]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[grafice]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rrdtool]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.bogdanturcanu.ro/?p=1738</guid>
		<description><![CDATA[Se da o aplicație scrisă în php, datele stocate în MySQL, care în final folosește rrdtool pentru a genera grafice cu diverse chestii. Am lucrat împreuna cu un coleg la aceasta, folosind pentru dezvoltare și test o mașina pe care rulează freeBSD 7.2-STABLE, php5-5.2.11_1, rrdtool-1.3.9, php5-rrdtool-1.00_1 și bineînțeles un apache și un server MySQL. Pentu [...]]]></description>
			<content:encoded><![CDATA[<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Flinux-php-cli-rrdtool%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/linux-php-cli-rrdtool/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Flinux-php-cli-rrdtool%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
<p><img class="alignright size-full wp-image-1740" style="border: 0pt none; margin: 0px 20px;" title="freebsd-logo" src="http://www.bogdanturcanu.ro/wp-content/uploads/2010/05/freebsd-logo.png" alt="" width="142" height="140" />Se da o aplicație scrisă în <a href="http://www.php.net" target="_blank">php</a>, datele stocate în <a href="http://www.mysql.com" target="_blank">MySQL</a>, care în final folosește <a href="http://oss.oetiker.ch/rrdtool/" target="_blank">rrdtool</a> pentru a genera grafice cu diverse chestii.<br />
Am lucrat împreuna cu un coleg la aceasta, folosind pentru dezvoltare și test o mașina pe care rulează <a href="http://www.freebsd.org" target="_blank">freeBSD</a> 7.2-STABLE, php5-5.2.11_1, rrdtool-1.3.9, php5-rrdtool-1.00_1 și bineînțeles un apache și un server MySQL.<br />
Pentu actualizare valorilor se rulează cu ajutorul crontab un script php care face operațiile necesare în baza de date și apoi face update la fișierul rrd corespunzător.<br />
Până aici toate bune, mergea minunat.</p>
<p><img class="alignleft size-medium wp-image-1741" style="border: 0pt none; margin: 0px 20px;" title="centos logo" src="http://www.bogdanturcanu.ro/wp-content/uploads/2010/05/800px-centos-logo-svg1-300x114.png" alt="" width="300" height="114" />A trebuit să pun în producție această aplicație pe o mașina care rulează <a href="http://www.centos.org" target="_blank">Linux CentOS</a> release 5.5 (Final), php-5.1.6-27.el5, php-cli-5.1.6-27.el5, php-rrdtool-1.0.50-3.el5.rf, rrdtool-1.0.50-3.el5.rf, php-rrdtool-1.0.50-3.el5.rf și la fel un server web și serverul MySQL.<br />
Partea aplicației accesibilă din interfața web funcționa corespunzător, dar nu se generau datele în urma executării script-ului în crontab.<br />
Acum a venit momentul să sap pentru a găsi problema. Modificări de fișiere, redirectare output într-un fișier log, comenzi, editoare. Am găsit în final o chestie dubioasă: scriptul respectiv care trebuia executat cu crontab se executa cu frecvența stabilită, dar fișierul conținea funcția php <strong>rrd_update()</strong> care nu se executa conform așteptărilor atunci când era apelată de php rulat în CLI. Noroc de funcția <strong>rrd_error()</strong> care mi-a scuipat imediat mesajul:  <em>„ERROR occurred: opening &#8216;update&#8217;: No such file or directory”</em>.<br />
Căutările pe net <a href="https://bugzilla.redhat.com/show_bug.cgi?id=437558" target="_blank">mi-au indicat că este un bug în versiunea respectivă de rrdtool</a>, despre care se spune că s-a remediat în următoarea versiune lansată. Cum nu avem drepturi administrative pe mașina pe care rula CentOS și timpul mă presa neputând așteptă update-urile făcute de administrator am găsit o cale de a evita apelarea funcției php <strong>rrd_update()</strong> și am recurs la un artificiu.<br />
Artificiul respectiv constă în apelarea unui script scris in<a href="http://www.gnu.org/software/bash/" target="_blank"> bash</a> care preia parametrii transmiși și apelează comanda <strong>rrdupdate</strong> nativă în<strong> rrdtool</strong>, fără a face uz de funcția <strong>rrd_update()</strong> din php. Scriptul <a href="http://www.gnu.org/software/bash/" target="_blank">bash</a> este apelat de către scriptul php folosind funcția <strong>system()</strong>, transmitându-i totodată și parametrii necesari (numele fișiereului rrd precum șî valorile pentru update).<br />
În fișierul php am folosit cod de genul:</p>
<blockquote><p><strong>$comanda=$nume_fisier_bash.&#8221; &#8220;.$nume_fisier_rrd.&#8221; &#8220;.$data_inregistrare.&#8221; &#8220;.$valoare_inregistrare;<br />
system($comanda);</strong></p></blockquote>
<p>Fișierul bash conține ceva de genul:</p>
<blockquote><p><strong>#!/bin/bash<br />
rrdupdate $1 $2:$3;</strong></p></blockquote>
<p>Și&#8230;chiar funcționează!</p>
<p>PS: Urăsc <a href="http://en.wikipedia.org/wiki/Vi" target="_blank">vi</a>, prefer <a href="http://nixdoc.net/man-pages/FreeBSD/ee.1.html" target="_blank">ee</a> !
<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Flinux-php-cli-rrdtool%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/linux-php-cli-rrdtool/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Flinux-php-cli-rrdtool%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bogdanturcanu.ro/linux-php-cli-rrdtool/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Importanta cheilor primare in tabele MySql</title>
		<link>http://www.bogdanturcanu.ro/importanta-cheilor-primare-in-tabele-mysql/</link>
		<comments>http://www.bogdanturcanu.ro/importanta-cheilor-primare-in-tabele-mysql/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 19:27:26 +0000</pubDate>
		<dc:creator>Bogdan Turcanu</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[cheie primara]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[timp executie]]></category>

		<guid isPermaLink="false">http://www.bogdanturcanu.ro/?p=265</guid>
		<description><![CDATA[Astazi mi-am propus sa fac un test pentru a vedea daca exista o imbunatatire de performanta atunci cand se folosesc chei primare in tabelele din bazele de date MySQL. Pentru aceasta am creat o baza de date: create database testviteza; In aceasta baza de date am creat un tabel: CREATE TABLE `random` ( `id_inregistrare` int(100) [...]]]></description>
			<content:encoded><![CDATA[<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fimportanta-cheilor-primare-in-tabele-mysql%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/importanta-cheilor-primare-in-tabele-mysql/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fimportanta-cheilor-primare-in-tabele-mysql%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
<p>Astazi mi-am propus sa fac un test pentru a vedea daca exista o imbunatatire de performanta atunci cand se folosesc chei primare in tabelele din bazele de date MySQL.</p>
<p>Pentru aceasta am creat o baza de date:</p>
<blockquote><p>create database testviteza;</p></blockquote>
<p>In aceasta baza de date am creat un tabel:</p>
<blockquote><p>CREATE TABLE `random` (<br />
`id_inregistrare` int(100) NOT NULL DEFAULT &#8217;0&#8242;,<br />
`date` varchar(100) NOT NULL DEFAULT &#8221;<br />
) ENGINE=MyISAM DEFAULT CHARSET=latin1;</p></blockquote>
<p>Mi-am propus sa populez acest tabel cu date. O metoda de a insera multe date in acest tabel intr-un mod rapid a fost sa creez un script PHP care sa faca acest lucru pentru mine<br />
<div align="center"><script type="text/javascript"><!--
google_ad_client = "pub-8310769609493718";
/* 300x250, creat 29.04.2011 */
google_ad_slot = "1847488039";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<blockquote><p>&lt;?php<br />
function datealeatoare($length = &#8220;&#8221;)<br />
{<br />
$code = md5(uniqid(rand(), true));<br />
if ($length != &#8220;&#8221;) return substr($code, 0, $length);<br />
else return $code;<br />
}<br />
set_time_limit(300);<br />
$link=mysql_connect(&#8216;localhost&#8217;, &#8216;utilizator&#8217;, &#8216;parola&#8217;);<br />
mysql_select_db(&#8216;testviteza&#8217;, $link);<br />
for($i=0;$i&lt;=1000000;$i++)<br />
{<br />
$sql=&#8221;insert into random(id_inregistrare,date) values (&#8216;&#8221;.$i.&#8221;&#8216;,&#8217;&#8221;.datealeatoare(100).&#8221;&#8216;)&#8221;;<br />
mysql_query($sql);<br />
}<br />
echo &#8220;Realizat&#8221;;<br />
mysql_close($link);<br />
?&gt;</p></blockquote>
<p>Avand datele introduse in tabel, incercam urmatoare interogare folosind clientul de mysql instalat pe acelasi sistem cu serverul mysql:</p>
<p><img class="alignnone size-full wp-image-268" title="mysql_fara_cheie_primara" src="http://www.bogdanturcanu.ro/wp-content/uploads/2009/01/mysql_fara_cheie_primara.jpg" alt="mysql_fara_cheie_primara" width="597" height="151" /></p>
<p>Mai incercam sa vedem timpul pentru o interogare dupa campul date:</p>
<p><img class="alignnone size-full wp-image-270" title="mysql_fara_cheie_primara_interogare2" src="http://www.bogdanturcanu.ro/wp-content/uploads/2009/01/mysql_fara_cheie_primara_interogare2.jpg" alt="mysql_fara_cheie_primara_interogare2" width="755" height="157" /></p>
<p>Vom modifica tabelul creat setand campul id_inregistrare ca fiind cheie primara in tabel.</p>
<blockquote><p>alter table random add primary key(id_inregistrare);</p></blockquote>
<p>Dupa aceasta modificare executam din nou prima interogare si observam ca timpul de raspuns este mult mai scazut:</p>
<p><img class="alignnone size-full wp-image-272" title="mysql_cu_cheie_primara" src="http://www.bogdanturcanu.ro/wp-content/uploads/2009/01/mysql_cu_cheie_primara.jpg" alt="mysql_cu_cheie_primara" width="593" height="139" /></p>
<p>Repetand interogarea dupa campul date observam ca aici nu exista o imbunatatire a timpului de raspuns:</p>
<p><img class="alignnone size-full wp-image-273" title="mysql_cu_cheie_primara2" src="http://www.bogdanturcanu.ro/wp-content/uploads/2009/01/mysql_cu_cheie_primara2.jpg" alt="mysql_cu_cheie_primara2" width="743" height="151" /></p>
<p>Concluzia este simpla: <strong>interogarile dupa cheia primara definita pentru tabelul respectiv se executa mult mai rapid.</strong>
<div class="social4i" style="height:69px;">
<div class="social4in" style="height:69px;float: right;">
<div class="socialicons s4fblike" style="float:left;margin-right: 10px;">
<div id="fb-root"></div>
<p><fb:like href="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fimportanta-cheilor-primare-in-tabele-mysql%2F" send="false" layout="box_count" width="55" height="62" show_faces="false" font=""></fb:like></div>
<div class="socialicons s4plusone" style="float:left;margin-right: 10px;"><g:plusone size="tall" href="http://www.bogdanturcanu.ro/importanta-cheilor-primare-in-tabele-mysql/" count="true"></g:plusone></div>
<div class="socialicons s4fbshare" style="position: relative;height: 61px;width:61px;background:url(&quot;http://goo.gl/qt6Vu&quot;) no-repeat;float:left;margin-right: 10px;">
<div class="s4ifbshare" style="position: absolute; bottom: 0pt;"><a name="fb_share" type="box_count" share_url="http%3A%2F%2Fwww.bogdanturcanu.ro%2Fimportanta-cheilor-primare-in-tabele-mysql%2F" href="http://www.facebook.com/sharer.php"></a></div>
</div>
</div>
<div style="clear:both"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bogdanturcanu.ro/importanta-cheilor-primare-in-tabele-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

