Here is a short, but nice socket tutorial.
You have to distinguish the client and server side. I cannot tell for MySQL, but typically the server side is implemented so, that for a connection, a new thread is processing the requests.
A connection pool is there to minimize socket opening overhead. Typically, you do not care via which connection (assuming all connected as the same user); you received the result set from database.
You do not want to consume resources, so you want to be nice and when you are finished you close your connection. I believe every server today ends a connection if there isn’t any activity for some time (timeout).