目录
安装与部署
操作系统:CentOS 6.7
数据库:mysql-5.7.14
查看系统是否安装了mysql
rpm -qa|grep mysql
有则卸载:
rpm -e mysql-community-server-5.7.14-1.el6.x86_64 --nodeps
rpm -e mysql-community-client-5.7.14-1.el6.x86_64 --nodeps
rpm -e mysql-community-common-5.7.14-1.el6.x86_64 --nodeps
rpm -e mysql-community-libs-5.7.14-1.el6.x86_64 --nodeps
卸载完后按顺序安装以下包:
rpm -ivh mysql-community-common-5.7.14-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.14-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.14-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.14-1.el6.x86_64.rpm
安装完毕后,使用以下命令检查mysqld文件是否存在
ls /etc/init.d | grep -i mysqld
查看该文件是否具有执行权限
如果没有执行权限,则使用以下命令:
chmod +x /etc/init.d/mysqld
设置mysql服务开机启动
使用以下命令查看mysqld的服务状态:
chkconfig --list mysqld
使用以下命令设置mysqld服务随机启动:
chkconfig mysqld on
启动mysql服务
service mysqld start
日志文件:/var/log/mysqld.log
如果启动服务报错,则以安全模式启动mysql服务
mysqld_safe --user=mysql &
查看root用户的临时密码,使用以下命令:
grep 'temporary password' /var/log/mysqld.log
登录mysql: mysql -uroot -p'初始密码'
进入后修改临时密码,为root用户设置一个可靠的密码,mysql5.7之后加了弱密码限制:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Abc2019_root';
如果root密码忘记可以按如下方案进行修改:
mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root mysql
update mysql.user set authentication_string=password('Abc2019_root') where user='root' and Host = 'localhost';
FLUSH PRIVILEGES;
开启远程服务器访问mysql,需要将mysql的端口在防火墙中开一个通行证。
编辑文件
/etc/sysconfig/iptables
在文件中添加mysql的端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
保存文件后,重启防火墙让新的规则生效
service iptables restart
创建数据库和用户
以root用户登录进来,创建数据mydb
create database mydb;
为数据库mysql添加用户
grant all on mydb.* to username@'localhost' identified by 'Mydb_2019';
grant all on mydb.* to username@'%' identified by 'Mydb_2019';
flush privileges;
上序命令表示:创建用户username,密码为Mydb_2019,访问数据库为mydb,拥有所有权限,@'localhost'表示username账号只通过localhost服务器才能访问,@‘%’表示username账号可以通过所有服务器访问
Mysql配置
在Linux系统中配置文件一般在/etc/my.cnf或者/etc/mysql/my.cnf
常用配置介绍
max_connections | 最大连接数,设置这个的作用就像一个急刹车,以保证服务器不会因应用程序激增的连接不堪重负 |
thread_cache_size | 服务器线程缓存(Thread_Cache)最大连接线程数 |
table_cache_size | 表缓冲和线程缓存类似,存储对象为表 |
default-storage-engine | 设置MySQL的默认存储引擎 |
query_cache_size | 主要用来缓存MySQL中的ResultSet |
sort_buffer_size | MySql执行排序使用的缓冲大小 |
innodb_buffer_pool_size | InnoDB缓冲池大小,比其他任何东西更需要内存,不仅仅是缓冲索引,还会缓冲行的数据,自适应哈希索引,插入缓冲,锁,以及其他内部数据结构。InnoDB还使用缓冲池来帮助延迟写入,这样就能合并多个写入操作然后一起顺序写回。所以必须确保缓冲池分配足够的内存。 |
innodb_log_buffer_size | 日志缓冲区大小 |
innodb_log_file_size | 日志文件大小 |
innodb_file_per_table | 让InnoDB为每张表使用一个文件 |
innodb_flush_method | 配置InnoDB如何跟文件系统互相作用 |
参考:《高性能MySql》