本文共 4175 字,大约阅读时间需要 13 分钟。
###Ubuntu16.04下Mysql5.7服务器搭建部署教程 ``` ##Mysql5.7镜像下载以及安装 1.mkdir /data/software //创建文件夹 2.cd /data/software //进入software文件夹 3.wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz //官网或者搜狐镜像下载http://mirrors.sohu.com/mysql/MySQL-5.7/mysql- 5.7.17-linux-glibc2.5-x86_64.tar.gz 安装数据库压缩包 4.tar -xzvf /data/software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz //解压缩文件 5.mv /data/software/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql //移动并修改文件名 6.mkdir /data/mysql //创建数据仓库目录 7.groupadd mysql //新建一个mysql用户组 8.useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql //新建mysql用户、组及目录(新建msyql用户禁止登录shell) 9.改变目录属有者 (1)cd /usr/local/mysql //进入mysql安装目录 (2)pwd //查看当前目录径路 chown -R mysql . //修改目录属有者 chgrp -R mysql . //修改目录组属有者 chown -R mysql /data/mysql 10.配置参数 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql 注意:这块指令可能会报错(cannot open shared object file: No such file or directory。)解决办法: apt-get install libaio-dev命令执行完毕在最后一行root@localhost:之后是数据库mysql第一次初始密码,此处需要注意记录生成的临时密码,如上文结尾处的:o+Am+9s1Lyeh 11.bin/mysql_ssl_rsa_setup --datadir=/data/mysql 12.修改系统配置文件 (1)cd /usr/local/mysql/support-files //进入系统配置文件目录下 (2)cp my-default.cnf /etc/my.cnf //将mysql的.cnf配置加载文件复制并放到/etc/文件夹下并更名 (3)cp mysql.server /etc/init.d/mysql //将myql的.server启动服务器文件复制并放到/etc/init.d/文件夹下并更名 (4)vi /etc/init.d/mysql //用vi打开mysql服务器配置文件并进行编辑,编辑内容如下: esc :/basedir 内容: basedir=/usr/local/mysql datadir=/data/mysql 13.启动mysql (1)/etc/init.d/mysql start 注意:此处会报错(Failed to start mysqld.service: Unit not found)原因:了解到MariaDB代替了mysql数据库,MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险,因此用上述命令启动不起来.解决方法一:(1)apt install mariadb-server //安装mariaDb(2)systemctl start mariadb.service //启动服务 (3)systemctl enable mariadb.service //开机启动服务方法二:/etc/systemd/system/mysqld.service 添加Unit,既然错误提示找不到Unit那我们添加一个就好了。在 /etc/systemd/system/mysqld.service下添加如下内容[Unit] Description=MySQL Server After=network.target [Service] ExecStart=/usr/bin/mysqld --defaults-file=/etc/mysql/my.cnf --datadir=/var/lib/mysql --socket=/var/run/mysqld/mysqld.sock User=mysql Group=mysql WorkingDirectory=/usr [Install] WantedBy=multi-user.target然后运行systemctl daemon-reload刷新缓存这样我们就可以用systemctl start mysql.service 启动mysql了 14.登录mysql数据库 (1)mysql -hlocalhost -uroot -p 注意:(如果出现:-bash: mysql: command not found 就执行: # ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行) (2)输入第10步生成的临时密码 16.set password=password('root');//修改密码 17.设置root账户的host地址以及登录密码(修改了才可以远程连接) (1)grant all privileges on *.* to 'root'@'%' identified by 'root'; //账号为root密码也为root (2)flush privileges; 提示:flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。 18.远程计算机连接数据库并测试 使用软件MySQL Workbench 6.3 CE输入数据库服务器ip地址账号密码连接并登录数据库 注意:可能会出现10061错误,解决办法:在服务端MySQL文件夹下找到my.ini(windows环境)或者my.cnf(linux环境)文件(如果使用mariadb启动的mysql则找到/etc/mysql/mariadb.conf.d路径下的50-server.cnf配置文件)将内容中的bind-address = 127.0.0.1配置信息用#注释掉,然后重启mysql服务/etc/init.d/mysql restart 现在便可以远程访问并连接到数据库. 19.mysql系统环境变量配置 (1)vi /etc/profile //打开并编辑配置文件 (2)export PATH=/usr/local/mysql/bin:$PATH //添加mysql环境变量路径 (3)source /etc/profile //使环境变量配置文件生效 20.配置mysql自动启动 (1)chmod 755 /etc/init.d/mysql (2)sysv-rc-conf mysql on //开启mysql服务自启 提示:安装sysv-rc-confsudo apt-get install sysv-rc-conf安装完成后,直接运行sudo sysv-rc-conf 命令即可打开该管理软件 操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择, “X”表示开启该服务。 用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。 也可以直接加入启动程序,例如把 /etc/init.d/red5 加入到系统自动启动列表中: sudo sysv-rc-conf red5 on 补充: --退出mysql命令窗口 #exit --查看mysql状态 #service mysql status --停止mysql #service mysql stop --启动mysql #service mysql start 附my.cnf(这是一个配置mysql配置文件,如你想钻研 你可以百度或google “mysql my.cnf 配置详情”)这里只对mysql开发最常见的一个配置问题做介绍:当一个项目组开发的人数越来越多时,数据库的连接数就会越来越多然后超过了 MySQL 设置的数据库连接数最大值,这是就会报错,1040错误提示“too many connections”这是我们第一步要想到的是看看数据库中连接数设置是否过小过小的话进入vi /etc/my.cnf配置文件进行打开并编辑在配置文件中加入max_connections = 1000此配置内容.如果数据库还是经常断开,这是我们就该采取像durid数据连接池这样的缓存配置对数据库连接进行合理分配以及监控.
show variables like '%max_connections%'; 查看最大连接数
set global max_connections=1000 重新设置
转载地址:http://sbjii.baihongyu.com/