版本為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還原到資料庫中