天天看點

MySQL資料庫系統安裝與配置

groupadd mysql

useradd -g mysql mysql -s /sbin/nologin

mkdir -p /usr/local/mysql

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/home/mysql/ \

-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DWITH_SSL=system \

-DMYSQL_TCP_PORT=3306 \

-DENABLE_DOWNLOADS=1 \

-DWITH_SSL=bundled

在cmake過程中會出現要安裝“yum install -y ncurses-devel”這個包

rm CMakeCache.txt

make && make install

chown -R mysql.mysql /usr/local/mysql//這個指令的作用是如果前面已經做過的這個指令,則執行完make && make install 這個指令

之後須要執改/usr/local/目錄下的mysql這個目錄的屬主與屬組

export PATH=$PATH:/usr/local/mysql/bin///初始化環境變量

[root@localhost ~]# vi .bash_profile//想開機自動運作編輯.bash_profile這個檔案

PATH=$PATH:/usr/local/mysql/bin/ //添加這一行話

cp support-files/my-medium.cnf /etc/my.cnf //建立配置檔案

cp support-files/mysql.server /etc/init.d/mysqld//添加系統服務,将mysql.server腳本檔案複制到/etc/init.d/目錄下,改名為mysqld,然後設定執行權限

chmod 755 /etc/init.d/mysqld

chkconfig --add /etc/init.d/mysqld //添加/etc/init.d/myspld到chkconfig裡,用service指令來管理(service mysql)

或直接用chkconfig --add mysqld也是可以添加的

chkconfig mysqld --level 235 on

/usr/local/mysql/scripts/mysql_install_db --user=mysql \//初始化腳本mysql_install_db位于安裝目錄的scripts檔案夾中

--ldata=/var/lib/mysql \

--basedir=/usr/local/mysql --datadir=/home/mysql //指定使用者為mysql,連結檔案是/var/lib/mysql,基本目錄

/usr/local/mysql,資料目錄為/home/mysql

ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock //源檔案是/var/lib/mysql/mysql.sock,連結

的檔案是/home/mysql/mysql.sock

vi /etc/init.d/mysqld

basedir=/usr/local/mysql

datadir=/home/mysql

以上所有的配置完了之後,一定要用“source /root/.bash_profile”這個指令來對初始腳本重新加載,這樣用mysql

這個使用者就能登入了

service mysqld start

netstat -tnl | grep 3306

#mysql -u root //登入資料庫

-------檢視指令----------

mysql> show databases;

mysql> use test;

mysql> show tables;

mysql> describe user; //檢視表内容(檢視user表裡的内容)

----------新增指令-----------

mysql>CREATE DATABASE benet;//建立資料庫名為benet

mysql>use benet; //進入benet這個資料庫

mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name)); //建立表名為users

注釋:“user_name”表示字段1名稱(也就是表格的第一行),“char(16)”表示類型,“not null”表示null值不能為空 NO;

“user_passwd”表示字段2名稱(也就是表格的第二行),“char(48)”表示類型,“default ''”表示null可以為空 YES;

“primary key(user_name)”表示primary key(主鍵名)

mysql> INSERT INTO users(user_name,user_passwd) VALUES('zhangsan', PASSWORD('123456')); //在users表中插入内容

mysql> INSERT INTO users VALUES('lisi', PASSWORD('654321')); //password是使用者為密碼加密的

mysql> insert into users values('sina',password('123abc'));

------------删除指令--------------

mysql> DELETE FROM users WHERE user_name='lisi';

mysql> DROP TABLE users;

mysql> DROP DATABASE benet;

----------更改指令---------

mysql> UPDATE users SET user_passwd=PASSWORD('') WHERE user_name='lisi';

mysql> UPDATE mysql.user SET password=PASSWORD('123456') WHERE user='root';

------------查詢指令-----------

mysql> SELECT user,host,password FROM mysql.user WHERE user='';

mysql> select * from users; //檢視user表裡的所有資訊

mysql> select user from users; //檢視users表裡的user這個使用者字段裡有哪些

使用者

mysql>flush privileges; //重新整理授權資訊,

mysqladmin -u root -p password '123456' //改的是新密碼,要輸入的是舊的密碼

Enter password: //輸入舊密碼

[root@localhost ~]# mysql -u root -p //登入

Enter password: //輸入之前改的密碼123456

---------------授權指令-------------------

mysql> GRANT select ON auth.* TO 'tom'@'localhost' IDENTIFIED BY '123456';//建立tom使用者密碼設定為123456,對其授權隻能查詢以auth開頭的所有表。

mysql> grant all on benet.* to 'tom'@'localhost'identified by '123';

mysql>flush privileges;

GRANT語句:專門用來設定資料庫使用者的通路權限。當指定的使用者不存在時,GRANT語句将會建立新的使用者,否則GRNAT

語句使用者修改使用者資訊。語句格式如下:

GRANT 權限清單 ON 庫名.表名 TO ‘使用者名’@‘來源位址’【IDENTFIED BY ‘密碼’】

mysql> SHOW GRANTS FOR 'dbuser'@'192.168.4.19'; (例如上面的例子:SHOW GRANTS FOR 'tom'@'localhost';,那個“使用者名@來源位址”要是一樣的)

mysql> REVOKE all ON auth.* FROM 'xiaoqi'@'localhost';

---------------備份與恢複指令------------------

# mysqldump -u root -p --opt --all-databases > all-data.sql //備份所有資料庫

# mysqldump -u root -p --database benet > benet.sql //備份auth資料庫

# mysqldump -u root -p mysql user > mysql-user.sql //備份mysql的user表

mysql>create database;

# mysql -u root -p test < mysql-user.sql //将備份還原到test資料庫中。

例子:

mysqldump -u root -p --database user > user.sql//将資料庫中名為user的資料庫備份出來(備份user這個資料庫)

mysql -u root -p < benet.sql//将備份user資料庫名資料庫user.sql還原到資料庫中

yum install /mnt/Packages/ncurses-devel-5.7-3.20090208.el6.i686.rpm -y