CentOS7 从官网下载安装mysql-server

# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server

安装成功后重启mysql服务。

# service mysqld restart

初次安装mysql,root账户没有密码。


[root@yl-web yl]# mysql -u root 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
rows in set (0.01 sec)

mysql>


设置密码

mysql> set password for 'root'@'localhost' =password('password');
Query OK, 0 rows affected (0.00 sec)

mysql> 

不需要重启数据库即可生效。

配置mysql
设置字符集

一般的,为了支持中文,我们应该讲字符集设为 UTF-8, 执行 
SHOW VARIABLES LIKE 'character%'; 
查看当前 MySQL 字符集

mysql>  SHOW VARIABLES LIKE 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
--------------------- 


可以看到默认服务器的字符器是 latin1 ,对中文不友好。 
修改 /etc/my.cnf 文件,添加字符集的设置
[mysqld]
character_set_server = utf8

[mysql]
default-character-set = utf8

重启 MySQL ,可以看到字符集已经修改了


其他常用配置配置

调整 MySQL 运行参数,修改 /etc/my.cnf 文件,常用配置如下:


[mysqld]
basedir      = path          # 使用给定目录作为根目录(安装目录)。
datadir      = path          # 从给定目录读取数据库文件。
pid-file     = filename      # 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统);


socket = /tmp/mysql.sock     # 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(Linux下默认是/var/lib/mysql/mysql.sock文件)
port             = 3306      # 指定MsSQL侦听的端口
key_buffer       = 384M      # key_buffer是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写)。
                               索引块是缓冲的并且被所有的线程共享,key_buffer的大小视内存大小而定。
table_cache      = 512       # 为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。可以避免频繁的打开数据表产生的开销
sort_buffer_size = 2M        # 每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY或GROUP BY操作。
                               注意:该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100×6=600MB
read_buffer_size = 2M        # 读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
query_cache_size = 32M       # 指定MySQL查询结果缓冲区的大小
read_rnd_buffer_size    = 8M # 改参数在使用行指针排序之后,随机读用的。
myisam_sort_buffer_size =64M # MyISAM表发生变化时重新排序所需的缓冲
thread_concurrency      = 8 # 最大并发线程数,取值为服务器逻辑CPU数量×2,如果CPU支持H.T超线程,再×2
thread_cache            = 8 # #缓存可重用的线程数
skip-locking                 # 避免MySQL的外部锁定,减少出错几率增强稳定性。
[mysqldump]
max_allowed_packet      =16M # 服务器和客户端之间最大能发送的可能信息包

[myisamchk]
key_buffer   = 256M
sort_buffer = 256M
read_buffer = 2M
write_buffer = 2M


执行 
whereis mysql 
可以看到mysql的安装目录是/usr/bin

[root@localhost ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz


启动和关闭 MySQL Server

启动 MySQL Server

systemctl start mysqld

查看 MySQL Server 状态

systemctl status mysqld

关闭 MySQL Server

systemctl stop mysqld

测试是否安装成功

mysql 
可以进入mysql命令行界面

防火墙设置

远程访问 MySQL, 需开放默认端口号 3306.

方式1:iptables(CentOS 7.x版本之前用法,不推荐)

打开 iptables 的配置文件: 
vi /etc/sysconfig/iptables 
如果该 iptables 配置文件 不存在,先执行 yum install iptables-services 安装

添加

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 3306 -j ACCEPT
1
2
执行iptables重启生效 

service iptables restart 

方式2:firewall-cmd(推荐)

执行

firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp
1
2
这样就开放了相应的端口。 
执行 
firewall-cmd --reload 
使最新的防火墙设置规则生效。

mysql安全设置

服务器启动后,可以执行 

mysql_secure_installation; 

根据提示进行选择。

至此,整个 MySQL 安装完成。

远程访问设置

创建一个普通用户 sa ,密码是 some_pass 
CREATE USER 'sa'@'%' IDENTIFIED BY 'some_pass'; 
给这个用户授予 SELECT,INSERT,UPDATE,DELETE 的远程访问的权限,这个账号一般用于提供给实施的系统访问 
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'sa'@'%'; 
创建一个管理员用户 admin 账号 ,密码是 some_pass 
CREATE USER 'admin'@'%' IDENTIFIED BY 'some_pass'; 
给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。 
GRANT ALL ON *.* TO 'admin'@'%'; 
使授权立刻生效 
flush privileges;

更改数据存放目录

创建数据存放目录

home 目录下建立 data 目录 
mkdir /home/data

把 MySQL 服务进程停掉

如果 MySQL 是启动的,要先关闭 
mysqladmin -u root -p shutdown

移动数据到数据存放目录

/var/lib/mysql 整个目录移到 /home/data,执行 
mv /var/lib/mysql /home/data 
这样就把 MySQL 的数据文件移动到了 /home/data/mysql 下 
修改 /etc/my.cnf 文件,

[mysqld]
datadir=/home/data/mysql
socket=/home/data/mysql/mysql.sock

[mysql]
socket=/home/data/mysql/mysql.sock
1
2
3
4
5
6
修改权限 
chown -R mysql:mysql /home/data/mysql 
重启后,如果不能启动 MySQL 服务,执行 
vi /etc/sysconfig/selinux 
调整 
SELINUX=permissive 
保存设置,执行 reboot 重启生效

开机自起

查看 MySQL 服务是否开机启动

[root@localhost ~]# systemctl is-enabled mysql.service;echo $?
enabled
0
1
2
3
如果是 enabled 则说明是开机自动,如果不是,执行 
chkconfig --levels 235 mysqld on

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值