Linux下mysql的安装配置
- 1.安装
方法一:通过yum安装
首先必须配置了yum源,然后直接执行
yum -y install mysql-server
如果提示Error Downloading Packages:
1:执行yum clean all 清除缓存目录下的软件包及旧的headers;
2:接着执行 yum list 重新列出所有已经安装和可以安装的软件包;
3:重新执行上述命令,发现yum编译成功;
注意:如果执行 yum list 报错,那就检查一下yum仓库是否有问题;并清除/etc/yum.repos.d/下多余.repo文件!
[root@localhost ~]# mount /dev/cdrom /mnt
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# cd /mnt/Server
[root@localhost Server]# ls
a2ps-4.13b-57.2.el5.x86_64.rpm
acl-2.2.39-8.el5.x86_64.rpm
…
[root@localhost ~]# ls /etc/yum.repos.d/
rhel-debuginfo.repo
[root@localhost ~]# vi /etc/yum.repos.d/rhel-debuginfo.repo
[root@localhost ~]#
[root@localhost Server]# cat /etc/yum.repos.d/rhel-debuginfo.repo
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=file:///mnt/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
查看安装是否完成
[root@localhost ~]# yum list
如果成功后,再次执行mysql的yum 安装命令即可。
安装完毕后可以检查一下是否安装成功:
[root@localhost ~]# rpm -qa|grep mysql-server
mysql-server-5.0.77-4.el5_6.6
[root@localhost ~]#
方法二:通过下载安装包rpm安装
1.下载mysql安装包
mysql:http://dev.mysql.com/downloads/mysql/
打开页面之后,在Select Platform:下选择linux Generic
2.下载完毕后解压到指定文件夹下
[root@localhost mysql]# ls MySQL-5.6.25-1.linux_glibc2.5.x86_64.rpm-bundle.tar MySQL-client-5.6.25-1.linux_glibc2.5.x86_64.rpm MySQL-devel-5.6.25-1.linux_glibc2.5.x86_64.rpm MySQL-embedded-5.6.25-1.linux_glibc2.5.x86_64.rpm MySQL-server-5.6.25-1.linux_glibc2.5.x86_64.rpm MySQL-shared-5.6.25-1.linux_glibc2.5.x86_64.rpm MySQL-shared-compat-5.6.25-1.linux_glibc2.5.x86_64.rpm MySQL-test-5.6.25-1.linux_glibc2.5.x86_64.rpm
3.检查安装
rpm -qa | grep mysql 或者 rpm -qa |grep MySQL
--查看系统之前是否已安装MySQL,这里是区分大小写的
如果没有结果显示则表示没有安装可以继续下面的步骤,如果有显示需要先卸载已安装的
rpm -e --nodeps mysql-libs-5.1.47-4.el6.i686
并要删除相关文件
rm -rf /var/lib/mysql* rm -rf /usr/share/mysql*
4.安装mysql server
rpm -ivh MySQL-server-5.6.25-1.linux_glibc2.5.x86_64.rpm
5.安装mysql client
rpm -ivh MySQL-client-5.6.25-1.linux_glibc2.5.x86_64.rpm
6.检测 MySQL 3306 端口是否打开。 netstat 看 MySQL 端口是否打开,如打开表示服务已经启动,安装成功。MySQL 默认的端口是3306。
[root@localhost mysql]# netstat -nat Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:999 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN tcp 0 132 172.17.8.85:22 172.17.10.213:49662 ESTABLISHED tcp 0 0 :::3306 :::* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 ::ffff:172.17.8.85:3306 ::ffff:172.17.10.213:53770 ESTABLISHED [root@localhost mysql]#
如果没有3306端口,启动mysql服务: service mysql start
7.修改mysql连接密码
在安装mysql server的过程中,它会随机生成一个默认的密码,位置在:/root/.mysql_secret ,打开这个文件之后就可以看到随机的密码了。
然后就可以修改密码了,先输入随机密码,再输入新密码并确认
[root@localhost mysql]# mysqladmin -u root -p password Enter password: New password: Confirm new password:
8.进入mysql,通过命令:mysql -u root -p,然后输入修改后的密码即可
[root@localhost mysql]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.6.25 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 | +--------------------+ 4 rows in set (0.00 sec)
9.远程连接
因为Linux系统是装在虚拟机上的,我用本机的navigate连接上面所装的mysql
一开始一直提示错误 --连接错误 Can't connect to MySQL server on XXXX(61)
1)进入mysql数据库:use mysql;
2)执行:update user set host = '%' where user = 'root'; 有多条的话可以修改一条
3)有多条记录时,可能会报错:ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
4)flush privileges;
(提交修改,这个绝对不能少,要不然不会生效。切记,我之前就是忘记了,死活连接不上)
以上4步后去连接mysql还是提示以上错误,那么就是防火墙的原因了
5)修改文件 /etc/sysconfig/iptables, 添加 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
,且必须加在icmp-host-prohibited之前
,且必须加在icmp-host-prohibited之前
# Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
重启防火墙:
[root@localhost mysql]# service iptables restart
清除防火墙规则: [确定]
把 chains 设置为 ACCEPT 策略:filter [确定]
正在卸载 Iiptables 模块: [确定]
应用 iptables 防火墙规则: [确定]
载入额外 iptables 模块:ip_conntrack_netbios_ns ip_conntrac[确定]
再重新连接 ,发现可以连接了
- 2.字符集配置
1)vim /etc/my.cnf
2)添加配置,在[mysqld]节点下添加:
default-character-set=utf8
character-set-server=utf8
保存退出。
补充关于中文乱码问题:
1.在5.1版本时,为了解决中文乱码问题,在my.ini内[mysql]和[mysqld]中都写:
default-character-set=utf8
2.在5.5版本,[mysql]内可以这么写,[mysqld]内不能这么写,而是写:
character-set-server=utf8
- 3.自启动配置
1)执行chkconfig mysqld on
2)执行chkconfig —list mysqld查看(如果2-5位启用on状态即OK)
[root@localhost ~]# chkconfig --list mysqld
mysqld 0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# chkconfig --list mysqld
mysqld 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
- 4.防火墙配置
1)sudo vim /etc/sysconfig/iptables
2)-A INPUT -p tcp -m tcp —dport 3306 -j ACCEPT
将以上配置添加到防火墙配置中,保存退出
3)执行命令重启防火墙
sudo service iptables restart
- 5.MYSQL服务启动(Linux)
1.启动mysql服务service mysqld start或/etc/rc.d/init.d/mysqld start
2.mysql初始化环境设置
因还未设置密码,执行mysql -u root登录mysql服务器
- 6.mysql配置
1)查看目前mysql的用户
Select user,host,password from mysql.user
2)修改root密码:
set password for root@localhost=password(’你的密码')
set password for root@127.0.0.1=password(‘你的密码’)
3)exit退出mysql
4)重新登录mysql输入mysql -u root -p
5)然后输入密码登录
mysql> set password for root@localhost=password('mysql_4U');
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
6)删除匿名用户,执行以下SQL
查看是否有匿名用户:select user,host from mysql.user;
删除匿名用户:delete from mysql.user where user=‘’;
再次查看:select user,host from mysql.user;
刷新,使以上操作生效:flush privileges;
7)插入mysql新用户
Insert into mysql.user(Host,User,Paaword) values(“localhost”,”yourusername”,password(“yourpasswd”));
8)使操作生成:flush privileges;
9)创建新的database
Create database `mmall`
Default character set utf8 collate utf8_general_ci;
10)本地用户赋予所有权限
grant all privileges on mmall.* to yourusername@localhost identified by ‘yourpasswd'
11)给账号开通外围所有权限
grant all privileges on mmall.* to ‘yourusername’@‘%’ identified by ‘userpasswd’;
注:可以根据实际情况决定开通什么权限
grant select,insert,update on mmall.* to ‘yourusername’@‘192.11.11.11’ identified by ‘userpasswd’;
代表给指定的地址开通增改查权限