mysql

ست کردن پسورد روت:

ابتدایی ترین کار هنگام شروع با mysql ست کردن پسورد برای کاربر روت می باشد.برای این منظور ابتدا ترمینال را باز کنید و به دایرکتوری نصب mysql تان بروید.(mysql/bin)

سپس دستور زیر را صادر میکنیم:

mysql-u root -p

سپس از شما پسورد میخواد.پسورد موردنظرتون رو وارد میکنیم.همین دی:

اگه از روی سرور میخواین وصل شین باید این دستورو بزنید:

mysql --host=yourhost --port=yourport --user=username --password=yourpass

ساخت دیتابیس جدید:

CREATE DATABASE databasename;

و برای ساخت دیتابیس با Uft8:

CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;

وصل شدن به دیتابیس:

mysql [-u username] [-h hostname] database-name

لیست تمامی دیتابیس ها:

show databases

لیست تمامی یوزرها:

SELECT DISTINCT User FROM mysql.user;

انتخاب دیتابیسی خاص:

use <database-name>

نمایش دیتابیس جاری:

SELECT DATABASE();

وضعیت دیتابیس:

status;

حذف دیتابیس بخصوص:

DROP DATABASE tutorial_database;

لیست تمامی جدول ها در یک دیتابیس:

show tables;

مشخصات یک جدول:

DESC <table-name>

تعریف جدول در دیتابیس:

CREATE TABLE EMPLOYEE ( ID INT AUTO_INCREMENT, FIRST_NAME VARCHAR(20), LAST_NAME VARCHAR(20), SALARY INT, PRIMARY KEY (ID)      

تغییر تعریف یه ستون خاص از جدول:

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);

حذف جدول:

DROP TABLE table_name;

حذف اطلاعات و داده های جدول:

TRUNCATE TABLE table_name;

نمایش یوزر جاری:

SELECT USER();

افزودن primary key به جدول موجود:

ALTER TABLE Persons ADD PRIMARY KEY (P_Id);

حذف کلید اصلی:

ALTER TABLE Persons DROP PRIMARY KEY;

اضافه کردن annotation برای auto-increment:(برای فایل هایبرنت)

کافی است برای فیلدی که میخواهیم اتو-اینکریمنت بشه اینارو بذاریم بالا سرش:

@id 

("GeneratedValue(generator="increment"@

GenericGenerator(name="increment",strategy="increment"@ ("Column(name="id@ );long id)

اضافه کردن شروط به یک فیلد:

ALTER TABLE `users` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY

*افزایش رم:

کافی ست به مسیر bin/ برویم و سپس فایل my.ini را بازکرده و تغییرات زیر را اعمال کنیم:

innodb_buffer_pool_size =512M

عدد 512 را به هر عدد دلخواهی که میخواهید افزایش دهید.

*حل مشکل  (Access denied for user 'root'@'localhost' (using password: YES  را در اینجا می توانید ببینید.

*تشخیص سایز هر دیتابیس در my sql:

SELECT table_schema "table name", sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB" 
FROM information_schema.TABLES GROUP BY table_schema ; 

یا:

SHOW TABLE STATUS LIKE 'TABLENAME'

*نمایش charset پیش فرض در Mysql:

SHOW VARIABLES LIKE  'char%';

یا:

SHOW CHARACTER SET WHERE CHARSET = 'utf8';

برای تغییر charset پیش فرض جداول:

use lms;
alter table product convert to character set utf8 collate utf8_roman_ci;

نمایش key_buffer_size:

show variables like 'key_buffer_size';

نمایش innodb_buffer_pool_size:

 show variables like 'innodb_buffer_pool_size';

نمایش query_cache_size:

SHOW VARIABLES LIKE 'query_cache_size';

دستورات مفید دیگر:

show status;
show variables

برای افزایش حجم حافظه:

query_cache_size=16M
key_buffer_size=256M

برای ریستور کردن دیتابیس(sql.*):

source backup.source