1.mysql的源码安装
http://my.oschina.net/looly/blog/297980
(1)注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,
否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
(2)装完mysql后在linux中不会出现mysql命令,需要在/etc/profile中添加如下配置
PATH=/usr/local/mysql/bin:$PATH
export PATH
保存后,还需执行source /etc/profile文件才能生效
linux中添加mysql的用户
1)以root用户登录
#mysql -u root -p
2)插入新用户,host:%;user:jason;pssword:jason
mysql>insert into mysql.user (host,user,password) values('%','jason',PASSWORD('jason'));
注:
当host为%时表示允许远程访问,如果想允许本地访问,则还要插入一条记录,同上,但要将%賛换成localhost;
3)更新密码
mysql>update user set password=password('jason') where user='jason'
新版的
update
user
set
authentication_string=
password
(
'123qwe'
)
where
user
=
'root'
and
Host =
'localhost'
;
4)授予权限
mysql>GRANT ALL PRIVILEGES ON *.* TO username@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
其中neuzjs为数据库名;
5)刷新权限
mysql>flush privileges;
linux中mysql如果忘记了root密码,该如何操作:
- #killall mysqld
- #mysqld_safe --skip-grant-tables&
- mysql -u root mysql;
- mysql> UPDATE user SET password= password ("newPWD") WHERE user='root';
- mysql> FLUSH PRIVILEGES;
- mysql> quit;
- #killall mysqld
- #service mysqld restart
mysql中导入数据
mysql>show databases;
mysql>use xxxx;
mysql> source xxx.sql;
mysql中数据库的备份
mysqldump -u 用户名 -p 数据库 > xxx.sql;
如:mysqldump -u root -p z_p2p_quartz > /home/p2padmin/quartzDump.sql
mysql数据库的定时备份
1.首先修改/etc/my.cnf
[mysqldump]
user=your_backup_user_name
password=your_backup_password
修改完配置文件后, 只需要执行mysqldump 脚本就可以了。备份脚本中不需要涉及用户名密码相关信息
不然执行时会出现
Warning: Using a password on the command line interface can be insecure
2.which mysqldump 查找mysqldump命令,在crontab中mysqldump命令要写绝对路径,不然识别不了
2.vi backup_mysql.sh
/usr/local/mysql/bin/mysqldump dandelion_qianhai > /root/mysql_backup/dandelion_qianhai`date '+%Y%m%d'`.sql
3.crontab -e
0 2 * * * /root/mysql_backup/backup_mysql.sh
解决步骤:
- 升级mysql到5.5以上,即建库时可以使用utf8mb4编码。
- 更改mysql设置,更改/etc/my.cnf配置文件。
在[client]加入default-character-set=utf8mb4;
在[mysqld]加入character_set_server = utf8mb4; - 重启mysql数据库。把要插入特殊表情的数据库、表、字段的编码改成utf8mb4
查看当前所有连接
show status、show processlist 可以看到当前对mysql连接的processes
MySQL 默认的最大连接数为 100,可以在 mysql 客户端使用以下命令查看
mysql> show variables like 'max_connections';
要对 mysql 的最大连接数进行修改,只需要在 my.cnf 配置文件里面修改 max_connections 的值,然后重启 mysql 就行。如果 my.ini 文件中没有找到 max_connections 条目,可自行添加以下条目
max_connections = 200
在MySQL数据库中查看当前事务的隔离级别:
select @@tx_isolation;
在MySQL数据库中设置事务的隔离 级别:
set tx_isolation=’隔离级别名称;’
1、查看该用户是否有远程登录的权限
===
mysql> SELECT * FROM mysql.user;
+-----------+-----------+
| User | Host |
+-----------+-----------+
| M | % |
| mysql.sys | localhost |
| root | localhost |
| tommy | % |
| showhilllee | % |
+-----------+-----------+
5 rows in set (0.00 sec)
很显然,M是允许从其它服务器登陆的。
2、查看 MySQL Server 是不是监听了 3306 端口
===
执行命令netstat -tulpen
netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 16801 1507/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 17222 1970/master
tcp6 0 0 :::3306 :::* LISTEN 27 46396 22054/mysqld
tcp6 0 0 :::22 :::* LISTEN 0 16803 1507/sshd
tcp6 0 0 ::1:25 :::* LISTEN 0 17223 1970/master
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 49600 22999/dhclient
udp 0 0 0.0.0.0:43504 0.0.0.0:* 0 48850 22999/dhclient
udp6 0 0 :::47875 :::* 0 48851 22999/dhclient
我在这里也没有问题。
这里如果没有监听3306端口或者只监听了localhost
(0.0.0.0表示监听所有),则在my.cnf
添加下面这一行
bind-address = 0.0.0.0
3、如果服务器是 CentOS7,将 MySQL 服务加入防火墙
===
执行命令
sudo firewall-cmd --zone=public --permanent --add-service=mysql
返回success。然后继续执行
sudo systemctl restart firewalld
我的重启防火墙之后就能正常访问了。