天天看點

【LINUX】Linux mysql資料庫搭建(編譯安裝)

版本為linux6.4,首先下載下傳編譯安裝包至本地。

設共享軟體包位址192.168.80.10

setenforce  0

service  iptables  stop

1.共享軟體包

mount.cifs   //192.168.80.10/r   /media/                 匿名通路共享檔案夾

cd   /media/

ls     檢視是否挂載成功了

tar   xzvf   mysql-5.5.24.tar.gz   -c   /opt/        解壓至/opt/

cd   /opt/ mysql-5.5.24 

mount   /dev/cdrom    /mnt

yum  install   cmake   -y                     安裝cmake

useradd  mysql   -s   /sbin/nologin       添加可以登入mysql使用者,但不能登入系統

mkdir   -p   /usr/local/mysql

執行yum   install   -y   ncurses-devel        檢視是否安裝此軟體包

執行以下腳本:

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

(注意:若安裝前未執行yum   install   -y   ncurses-devel   指令,有可能會報錯。

此時,執行上條指令解決問題,并且執行rm   cmakecache.txt删除緩存,再重新執行cmake)

若未報錯,執行make

若未報錯,執行make  install

chown  -r   mysql.mysql /usr/local/mysql             改變mysql的權限

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

(注意,這裡初始化是臨時的,若想開機自運作,則執行

vi   ~/.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    mysqld   --level   235  on

初始化腳本mysql_install_db位于安裝目錄的scripts檔案夾中

/usr/local/mysql/scripts/mysql_install_db \

--user=mysql \                                      

--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      

vi    /etc/init.d/mysqld

修改以下兩個參數:

basedir=/usr/local/mysql     

datadir=/home/mysql

儲存

source   /root/.bash_profile         立刻加載配置檔案

此時,所有配置檔案已修改完畢,

執行service   mysqld   start   啟動服務

netstat -tnl | grep 3306     可以檢查3306端口mysqld服務的運作狀态

2.調試mysqld

mysql  -u   root   //登入資料庫

修改root密碼:

use mysql;

update user set password=password("123456") where user='root';

flush privileges;

退出資料庫,重新登入

mysql -u root -p

password:123456

mysql>

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

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'@'192.168.80.4'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 benet users > b-user.sql //備份mysql的 

user表

mysql>create benet;

#mysql -u root -p  < benet.sql 

# mysql -u root -p mysql < mysql-user.sql //将備份還原到mysql 

資料庫中。

例子:

mysqldump -u root -p --database user > user.sql//将資料庫中名 

為user的資料庫備份出來(備份user這個資料庫)

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

user.sql還原到資料庫中