在線安裝
1. 檢查系統(tǒng)本身是否有預(yù)裝的mysql
1.rpm -qa | grep mysql #檢查是否安裝了mysql
2.rpm -qa | grep mariadb #檢查是否安裝了mariadb
3.rpm -e xxx #一般使用此命令即可卸載成功
4.rpm -e --nodeps xxx #卸載不成功時(shí)使用此命令強(qiáng)制卸載)
2.安裝MySql
1.wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
//下載mysql的rpm的包
2.yum -y install mysql57-community-release-el7-10.noarch.rpm
3.yum -y install mysql-community-server
3.進(jìn)入Mysql
1.生成初始密碼,我在這里并沒有生成初始密碼,所以我直接把vim /etc/my.cnf
文件最后面加入skip-grant-tables
保存文件退出, 使用systemctl restart mysqld
重啟服務(wù)器, 使用下面的命令查看生成的密碼;
grep "password" /var/log/mysqld.log
再次修改vim /etc/my.cnf
, 注釋掉skip-grant-tables
, 退出免密登錄. 不然后面無(wú)法修改密碼.
2.登錄mysqlmysql -uroot -p
mysql -uroot -p
enter your password: 上面獲取的初始密碼
提示 如果你設(shè)置不驗(yàn)證登錄只需要mysql
回車就好了
3.修改Mysql的root用戶密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密碼';
提示這里密碼遵守mysql
的安全策略(大寫英文,小寫英文,數(shù)字,特殊字符),不然會(huì)報(bào)錯(cuò)的,雖然可以進(jìn)行更改,但是不建議更改,這樣安些 如果要更改的話
set global validate_password_policy=0;
set global validate_password_length=6;
4.測(cè)試登錄
看密碼是否生效(如果你更改了配置文件下的數(shù)據(jù),先把
skip-grant-tables
)用#
號(hào)注釋掉,然后service mysqld restart
對(duì)服務(wù)進(jìn)行重啟
mysql -uroot -p
>>輸入你設(shè)置的密碼
4.設(shè)置Mysql遠(yuǎn)程登陸 (前提:進(jìn)入到數(shù)據(jù)庫(kù)里面)
use mysql;
update user set host='%' where user='root' and host='localhost';
//這里的%是允許所有的ip地址登錄這個(gè)服務(wù)器的mysql服務(wù)器
flush privileges;
//刷新權(quán)限
然后退出mysql
firewall-cmd --permanent --add-port=3306/tcp //防火墻開發(fā)3306端口
>>success//顯示成功
firewall-cmd --reload
>>success//顯示成功
查看防火墻的狀態(tài)
systemctl status firewalld
如果是running
就是啟動(dòng)的,如果是dead
就是關(guān)閉,systemctl start firewalld
進(jìn)行啟動(dòng)
這里有的不支持這個(gè)命令需要service iptables status
進(jìn)行查看防火墻的狀態(tài).
5.使用遠(yuǎn)程連接
使用軟件對(duì)mysql進(jìn)行連接(推薦使用Navicat)這個(gè)軟件是真的好進(jìn)行連接
[本教程參考了] : http://www.reibang.com/p/3b613d4491bf
離線安裝
安裝依賴
yum -y install libaio
創(chuàng)建用戶和組
新建mysql用戶和組, 用于設(shè)置mysql安裝目錄文件所有者和所屬組
groupadd mysql
useradd -r -g mysql mysql
注:
- 1.
useradd -r
表示mysql用戶是系統(tǒng)用戶, 不可用于登錄系統(tǒng) - 2.
useradd -g
表示把mysql用戶添加到mysql用戶組中
下載mysql安裝包
當(dāng)然也可以使用迅雷或者其他方式下載后再上傳到服務(wù)器
解壓并創(chuàng)建data目錄
- 1.解壓到指定目錄, 并重命名文件夾
tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql
- 2.進(jìn)入mysql目錄,并創(chuàng)建
tmp, log, data
文件夾
cd /usr/local/mysql
mkdir tmp log data
- 3.確保mysql下的文件屬主都為mysql(下面的命令是在mysql目錄下執(zhí)行的)
chown -R mysql:mysql /usr/local/mysql/
初始化mysql配置表
cd /usr/local/mysql/ # 進(jìn)入到mysql目錄
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data # 初始化
--user 啟動(dòng)mysql的用戶
--basedir mysql 的安裝目錄
--datadir mysql數(shù)據(jù)倉(cāng)庫(kù)目錄
注意
初始化完成后, 注意最后一行, 可能不同的版本出現(xiàn)的位置不一樣, 它給出了root的初始密碼, 后面登錄的時(shí)候要這個(gè)密碼
[Note] A temporary password is generated for root@localhost: Oow7Fi=lb#dO
例如我的初始密碼就是Glly__T!=1z4
我們也可以吧初始化的密碼保存到一個(gè)臨時(shí)文件中
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data > /tmp/mysql.pwd
開啟加密連接
bin/mysql_ssl_rsa_setup
權(quán)限歸還
將mysql/目錄下除了data缘揪、tmp秩命、log目錄的所有文件,改回root用戶所有,mysql用戶只需作為mysql/data/目錄下所有文件的所有者
cd /usr/local/mysql/
chown -R root:root ./
# 將 data tmp 和 log還是給mysql用戶
chown -R mysql:mysql data
chown -R mysql:mysql tmp
chown -R mysql:mysql log
開機(jī)自啟
- 1.復(fù)制
mysql.server
文件到/etc/init.d/mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
- 2.添加環(huán)境變量
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile.d/mysql.sh
- 3.刷新配置
source /etc/profile
- 4.設(shè)置開機(jī)自啟
chkconfig mysql on
service mysql start
更改密碼
使用如下命令更改密碼
mysql --connect-expired-password -uroot -pGlly__T!=1z4 -e "set password for root@localhost = password('123456')"
由于我的系統(tǒng)是centos8.0
在更改密碼的時(shí)候, 會(huì)報(bào)如下的錯(cuò)誤
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
需要我們安裝依賴
yum install libncurses*
等待安裝完畢, 再次運(yùn)行
[root@localhost ~]# mysql --connect-expired-password -uroot -pGlly__T!=1z4 -e "set password for root@localhost = password('123456')"
mysql: [Warning] Using a password on the command line interface can be insecure.
至此密碼修改完成.
自定義mysql啟動(dòng)參數(shù)
- 1.
vim /etc/my.cnf
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
basedir = /usr/local/mysql
socket = /tmp/mysql.sock
datadir = /usr/local/mysql/data
character_set_server = utf8
collation_server = utf8_general_ci
default_storage_engine = MyISAM
skip-external-locking
key_buffer_size = 64M
max_allowed_packet = 100G
table_open_cache = 256
sort_buffer_size = 1M
net_buffer_length = 4K
read_buffer_size = 1M
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 16M
thread_cache_size = 32
query_cache_size = 32M
tmp_table_size = 64M
#skip-name-resolve
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/usr/local/mysql/log/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on
innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data
innodb_buffer_pool_size = 256M
innodb_log_file_size = 128M
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 500M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 1M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
注意
如果你安裝的mysql 不是在/usr/local/mysql下 , 還需要修改
/etc/init.d/mysqld
文件
mysqld_pid_file_path=
if test -z "$basedir"
then
basedir=/usr/local/mysql
bindir=/usr/local/mysql/bin
if test -z "$datadir"
then
datadir=/usr/local/mysql/data
fi
sbindir=/usr/local/mysql/bin
libexecdir=/usr/local/mysql/bin
else
大約在62行, 把basedir, datadir, bindir, sbindir,libexecdir , 修改成自己對(duì)應(yīng)的路徑